documentation

ExtrinsicDataWrapper

Functions for managing ExtrinsicDataWrapper objects. More...

Functions

VL_SDK_API vlExtrinsicDataWrapper_t *VL_CALLINGCONVENTION vlNew_ExtrinsicDataWrapper ()
 Creates a new ExtrinsicDataWrapper object and returns a pointer to it. More...
 
VL_SDK_API void VL_CALLINGCONVENTION vlDelete_ExtrinsicDataWrapper (vlExtrinsicDataWrapper_t *extrinsicDataWrapper)
 Deletes an ExtrinsicDataWrapper object. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetValid (vlExtrinsicDataWrapper_t *extrinsicDataWrapper)
 Returns whether the current tracking pose is valid (the tracking was successful). More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetValid (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, bool value)
 Sets the valid flag of the given ExtrinsicData. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetModelViewMatrix (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, float matrix[], unsigned int matrixElementCount)
 Returns the current camera pose as model-view matrix. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetT (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, float t[], unsigned int elementCount)
 Returns the translation $t$ from the world coordinate system to the camera coordinate system. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetT (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, const float t[], unsigned int elementCount)
 Sets the translation $t$ from the world coordinate system to the camera coordinate system. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetR (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, float q[], unsigned int elementCount)
 Returns the rotation $R$ from the world coordinate system to the camera coordinate system. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetR (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, const float q[], unsigned int elementCount)
 Sets the rotation $R$ from the world coordinate system to the camera coordinate system. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetCamPosWorld (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, float t[], unsigned int elementCount)
 Returns the position $P_{cam}$ of the camera in world coordinates. More...
 
VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetCamPosWorld (vlExtrinsicDataWrapper_t *extrinsicDataWrapper, const float t[], unsigned int elementCount)
 Sets the position $P_{cam}$ of the camera in world coordinates. More...
 

Detailed Description

Functions for managing ExtrinsicDataWrapper objects.

The ExtrinsicDataWrapper is a wrapper for an ExtrinsicData object. ExtrinsicData objects represent the extrinsic camera parameters (position and orientation).

Function Documentation

◆ vlDelete_ExtrinsicDataWrapper()

VL_SDK_API void VL_CALLINGCONVENTION vlDelete_ExtrinsicDataWrapper ( vlExtrinsicDataWrapper_t extrinsicDataWrapper)

Deletes an ExtrinsicDataWrapper object.

Call this function if you used the vlDataSetWrapper_GetExtrinsicData function to acquire the object and you are now done using it.

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.

◆ vlExtrinsicDataWrapper_GetCamPosWorld()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetCamPosWorld ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
float  t[],
unsigned int  elementCount 
)

Returns the position $P_{cam}$ of the camera in world coordinates.

Internally the position $P_{cam}$ will be computed from the transformation $(R,t)$ which transforms a 3D point from world coordinates into camera coordinates ( $P_{cam} = -R^{-1}t$).

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
tFloat array with 3 elements $(x,y,z)$ for storing the position.
elementCountNumber of elements in the given array. This should be 3.
Returns
true, on success; false otherwise.

◆ vlExtrinsicDataWrapper_GetModelViewMatrix()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetModelViewMatrix ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
float  matrix[],
unsigned int  matrixElementCount 
)

Returns the current camera pose as model-view matrix.

The returned matrix assumes a right-handed coordinate system and is stored in the following order (column-major order):

\[ \begin{bmatrix} 0 & 4 & 8 & 12\\ 1 & 5 & 9 & 13\\ 2 & 6 & 10 & 14\\ 3 & 7 & 11 & 15\\ \end{bmatrix} \]

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
matrixFloat array with 16 elements for storing the model-view matrix.
matrixElementCountNumber of elements in the given array. This should be 16.
Returns
true, on success; false otherwise.

◆ vlExtrinsicDataWrapper_GetR()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetR ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
float  q[],
unsigned int  elementCount 
)

Returns the rotation $R$ from the world coordinate system to the camera coordinate system.

Please notice, that $(R,t)$ represents the transformation of a 3D point $P_w$ from world coordinates into a 3D point $P_c$ in camera coordinates: $P_c = RP_w + t$.

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
qFloat array with 4 elements $(x,y,z,w)$ for storing the rotation as quaternion.
elementCountNumber of elements in the given array. This should be 4.
Returns
true, on success; false otherwise.

◆ vlExtrinsicDataWrapper_GetT()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetT ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
float  t[],
unsigned int  elementCount 
)

Returns the translation $t$ from the world coordinate system to the camera coordinate system.

Please notice, that $(R,t)$ represents the transformation of a 3D point $P_w$ from world coordinates into a 3D point $P_c$ in camera coordinates: $P_c = RP_w + t$.

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
tFloat array with 3 elements $(x,y,z)$ for storing the translation.
elementCountNumber of elements in the given array. This should be 3.
Returns
true, on success; false otherwise.

◆ vlExtrinsicDataWrapper_GetValid()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_GetValid ( vlExtrinsicDataWrapper_t extrinsicDataWrapper)

Returns whether the current tracking pose is valid (the tracking was successful).

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
Returns
true, if the current tracking pose is valid; false otherwise.

◆ vlExtrinsicDataWrapper_SetCamPosWorld()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetCamPosWorld ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
const float  t[],
unsigned int  elementCount 
)

Sets the position $P_{cam}$ of the camera in world coordinates.

Internally this will be stored as a transformation $(R,t)$ of a 3D point from world coordinates into camera coordinates ( $t = -RP_{cam}$).

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
tFloat array with 3 elements $(x,y,z)$, which contains the position.
elementCountNumber of elements in the given array. This should be 3.
Returns
true, on success; false otherwise.

◆ vlExtrinsicDataWrapper_SetR()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetR ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
const float  q[],
unsigned int  elementCount 
)

Sets the rotation $R$ from the world coordinate system to the camera coordinate system.

Please notice, that $(R,t)$ represents the transformation of a 3D point $P_w$ from world coordinates into a 3D point $P_c$ in camera coordinates: $P_c = RP_w + t$.

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
qFloat array with 4 elements $(x,y,z,w)$, which contains the rotation as quaternion.
elementCountNumber of elements in the given array. This should be 4.
Returns
true, on success; false otherwise.

◆ vlExtrinsicDataWrapper_SetT()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetT ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
const float  t[],
unsigned int  elementCount 
)

Sets the translation $t$ from the world coordinate system to the camera coordinate system.

Please notice, that $(R,t)$ represents the transformation of a 3D point $P_w$ from world coordinates into a 3D point $P_c$ in camera coordinates: $P_c = RP_w + t$.

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
tFloat array with 3 elements $(x,y,z)$, which contain the translation.
elementCountNumber of elements in the given array. This should be 3.
Returns
true, on success; false otherwise.

◆ vlExtrinsicDataWrapper_SetValid()

VL_SDK_API bool VL_CALLINGCONVENTION vlExtrinsicDataWrapper_SetValid ( vlExtrinsicDataWrapper_t extrinsicDataWrapper,
bool  value 
)

Sets the valid flag of the given ExtrinsicData.

Parameters
extrinsicDataWrapperPointer to an ExtrinsicDataWrapper object.
valueThe new value of the valid flag.
Returns
true, if setting worked; false otherwise

◆ vlNew_ExtrinsicDataWrapper()

VL_SDK_API vlExtrinsicDataWrapper_t* VL_CALLINGCONVENTION vlNew_ExtrinsicDataWrapper ( )

Creates a new ExtrinsicDataWrapper object and returns a pointer to it.

This pointer must be released using vlDelete_ExtrinsicDataWrapper.

Returns
A pointer to a new ExtrinsicDataWrapper object.