Monado OpenXR Runtime
Loading...
Searching...
No Matches
xrt::tracking::constellation::optimizer::SeedableVector< T, N > Struct Template Reference
Collaboration diagram for xrt::tracking::constellation::optimizer::SeedableVector< T, N >:

Public Types

using VectorType = Vector< T, N >
 

Public Member Functions

T * data ()
 Returns the data to use for a parameter, asserts you have seeded the data before this.
 
VectorType & seedVec ()
 Returns the vector for you to write into and seed.
 
void anchor ()
 Freezes the current value as the point this state is linearized at, unless it already has one.
 
const T * anchorData () const
 The frozen linearization point, or null for a state that has never been anchored.
 
void releaseAnchor ()
 Forgets the frozen linearization point, so the state linearizes wherever it currently is again.
 
void unseed ()
 Drops everything held here, for a slot about to be handed to a state of its own.
 

Data Fields

VectorType vec
 
bool seeded {false}
 
VectorType first_estimate
 The value this state is held linearized around, once it has been anchored.
 
bool anchored {false}
 Whether first_estimate has been taken.
 

Member Function Documentation

◆ anchor()

template<typename T , int N>
void xrt::tracking::constellation::optimizer::SeedableVector< T, N >::anchor ( )
inline

Freezes the current value as the point this state is linearized at, unless it already has one.

References xrt::tracking::constellation::optimizer::SeedableVector< T, N >::anchored.

◆ anchorData()

template<typename T , int N>
const T * xrt::tracking::constellation::optimizer::SeedableVector< T, N >::anchorData ( ) const
inline

The frozen linearization point, or null for a state that has never been anchored.

References xrt::tracking::constellation::optimizer::SeedableVector< T, N >::anchored.

◆ data()

template<typename T , int N>
T * xrt::tracking::constellation::optimizer::SeedableVector< T, N >::data ( )
inline

Returns the data to use for a parameter, asserts you have seeded the data before this.

◆ releaseAnchor()

template<typename T , int N>
void xrt::tracking::constellation::optimizer::SeedableVector< T, N >::releaseAnchor ( )
inline

Forgets the frozen linearization point, so the state linearizes wherever it currently is again.

References xrt::tracking::constellation::optimizer::SeedableVector< T, N >::anchored.

◆ seedVec()

template<typename T , int N>
VectorType & xrt::tracking::constellation::optimizer::SeedableVector< T, N >::seedVec ( )
inline

Returns the vector for you to write into and seed.

Assumes you have seeded it after this function is called.

◆ unseed()

template<typename T , int N>
void xrt::tracking::constellation::optimizer::SeedableVector< T, N >::unseed ( )
inline

Drops everything held here, for a slot about to be handed to a state of its own.

References xrt::tracking::constellation::optimizer::SeedableVector< T, N >::anchored.

Field Documentation

◆ anchored

◆ first_estimate

template<typename T , int N>
VectorType xrt::tracking::constellation::optimizer::SeedableVector< T, N >::first_estimate

The value this state is held linearized around, once it has been anchored.

A marginalization prior is a statement about one particular linearization of the states it covers, and it goes on making that statement long after the solve has moved them. Everything that touches an anchored state has to keep linearizing it here, or the frozen factor and the live residuals stop describing the same point.


The documentation for this struct was generated from the following file: