All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Loading...
Searching...
No Matches
VuMeshObservationBlock Struct Reference

Public Attributes

int32_t id
 Unique ID of the mesh block.
 
int64_t timestamp
 Timestamp of the last update to the mesh block.
 
int32_t version
 Current version of the mesh block, incremented each time it is updated.
 
VuMatrix44F transform
 Transformation of the mesh block to the observation coordinate system.
 
VuAABB bbox
 Axis-aligned bounding box of the observed mesh.
 
VuMeshmesh
 Mesh data.
 

Detailed Description

The Mesh observation block represents a single self-contained mesh.

Each mesh block holds metadata and the actual mesh data. The metadata consists of a unique ID, a timestamp, and a version number. These fields enable the unique identification of each mesh block and the tracking of potential updates to the mesh block. Both the ID and the version are positive numbers. The IDs are unique within a Vuforia session, they are generated at runtime and are not persistent across Vuforia sessions. Moreover, the IDs are not reused, meaning that a newly added mesh block can never have the same ID as an already removed mesh block. Whenever a mesh block has been updated, its timestamp is adjusted to reflect the time of the change, and its version is increased. The actual data of a mesh block consists of a transformation matrix, the axis aligned bounding box of the mesh, and a pointer to a VuMesh structure that holds the mesh.

Member Data Documentation

◆ transform

VuMatrix44F transform

Transformation of the mesh block to the observation coordinate system.

The transformation is represented as a 4x4 matrix using the OpenGL convention. The matrix is decomposable into translation, rotation and scale components.

To transform the mesh block to world space, combine the observation pose with the transformation of the mesh block as shown below:

VuPoseInfo poseInfo;
vuObservationGetPoseInfo(observation, &poseInfo);
VuMatrix44F modelMatrix = vuMatrix44FMultiplyMatrix(poseInfo.pose, block.transform);
VuMatrix44F vuMatrix44FMultiplyMatrix(VuMatrix44F mA, VuMatrix44F mB)
Multiply the two 4x4 matrices A and B and return (mA * mB)
VuResult vuObservationGetPoseInfo(const VuObservation *observation, VuPoseInfo *poseInfo)
Get pose information associated to an observation.
4x4 matrix (float)
Definition Basic.h:100
Pose-related information for an observation instance.
Definition Engine.h:605
VuMatrix44F pose
The pose of an observation.
Definition Engine.h:619