cRigidBodySettings class contains all of setting variables for configuring rigid body asset properties.
In the Motive API, you can use...
const int kRigidBodyNameMaxLen = 32;
const int kRigidBodyModelNameMaxLen = 256;
void Save( Core::cIWriter *serial ) const;
void Load( Core::cIReader *serial );
wchar_t mName [kRigidBodyNameMaxLen];
float MaxFrameRotation; //== deprecated
float MaxFrameTranslation; //== deprecated
bool DynamicRotationConstraint; //== deprecated
bool DynamicTranslationConstraint; //== deprecated
double Smoothing; // in the range [0,1]
double PredictionTime; // the amount of time to predict the solution forward, in fractional frames
//== Static constraint ==--
// Solver settings
int MinimumHitCount; //== deprecated
Algorithm_Auto = 0,
Most of the settings in the cRigidBodySettings class is described in the Rigid Body Properties page.
Name: Allows a custom name to be assigned to the rigid body. Default is "Rigid Body X" where x is the Rigid Body ID.
Smoothing: Applies Double Exponential Smoothing to position and orientation data. Increasing can smooth out noise in the rigid body data, but excessive smoothing can introduce lag. Valid range is 0 to 100. Default is 0 (disabled).
Deflection: The maximum distance in millimeters that a marker may deviate from its expected position before it is not considered as part of the rigid body. Lower deflection settings force the solver to be more strict with marker positions, creating a more accurate solve, but with higher risk of gaps in the data. Higher deflection settings can allow for more continuous data, but with the potential for less accuracy in the rigid body solve.
Latency Compensation: Compensate for system latency by predicting the rigid body into the future (ms).
Tracking Algorithm: Selected tracking algorithm. Levels increase tracking accuracy at increasing computational expense.
For Motive 1.10 and above:
Enhance Performance: Localizes rigid body searching algorithm using the previous trajectory information. It reduces the processing load in distinguishing individual rigid bodies. It is recommended to enable this setting for each rigid body when tracking a high number of objects.
Share Markers: Allow markers of the respective rigid body to be used by other rigid bodies.
Unique: Indicates that this rigid body marker arrangement is not identical to another defined rigid body. When the tracked rigid body has a unique marker placement, setting this to true can improve tracking stability.
User ID: User definable data for the rigid body. When working with capture data in external pipelines, this value can be used to address specific rigid bodies in the scene.
Min Marker Count: The minimum number of tracked markers.
Calculation Time: Maximum amount of time to solve the rigid body per frame (ms).
Acquisition Delay: While a rigid body is untracked, only search the Point Cloud every Nth frame.
If you wish to limit Rigid body orientation, first create the rigid body while the subject is in desired orientation. Then set the Angle value for positive and negative rotation boundaries. After the angle value is defined, change the X/Y/Z values to 1 in order to apply the orientation constraints to only allow the axis to be oriented within the cone shaped boundaries.
For example, if 45 degree constraint is applied to Y-axis of the rigid body, rotations only up to +/- 45 degrees about the X and Z axes of the rigid body will be allowed, creating a cone shaped acceptable range of orientations for the Y-axis. If the rigid body is oriented out of this boundary, markers will be unlabeled.
Enforce: Enable static constraints.
X: X component of unit vector cone of allowable orientations. No restrictions when set to 0.
Y: Y component of unit vector cone of allowable orientations. No restrictions when set to 0.
Z: Z component of unit vector cone of allowable orientations. No restrictions when set to 0.
Angle: Maximum allowable angular deflection +/- of the unit cone vector (degrees).
Color Option: Selects a color for the rigid body in the 3D Perspective View. When the coloring macro is set to cycle colors, Motive will automatically assign colors from a predefined list. When this macro is disabled, the color can be selected using a standard RGB triplet.
Label: Selects whether or not to display the rigid body name in the 3D Perspective View. If selected, a small label in the same color as the rigid body will appear over the centroid in the 3D Perspective View.
Tracked: Selects whether or not to show the rigid body in the 3D Perspective View when it is tracked.
Untracked: Selects whether or not to show the last known position of a rigid body in the 3D Perspective View after tracking has been lost. If enabled, the rigid body will appear somewhat remain frozen in the last known position before tracking was lost, until tracking is regained.
Pivot: Selects whether the pivot point of the rigid body is displayed.
Untracked Markers: When enabled, all markers that are part of the rigid body definition will be dimmed, but still visible, when not present in the point cloud.
Quality: Enabling will turn the connecting lines between markers in a rigid body red as the distance between the markers deviates from what was defined during the rigid body creation.
Marker Quality: Enables ranking of markers and highlights those with higher residuals in red. This setting can be useful in determining marker detection quality and troubleshooting issues based on detection.
Orientation: Enables the display of a rigid body's local coordinate axes. This option can be useful in visualizing the orientation of the rigid body, and for setting orientation offsets.
Position History: Shows a history of the rigid body’s position.
Orientation History: Shows a history of the rigid body’s orientation.
Model Replace: When a valid geometric model is loaded in the Attached Geometry section, the model will be displayed instead of a rigid body when this entry is set to true.
Attached Geometry: Loads the OBJ file to replace the rigid body. Scale, positions, and orientations of the attached geometry can be configured under the following Default Attached Geometry section.
History Length: Selects the number of frames’ worth of position or orientation history that is displayed when either option is turned on. Valid range is 1 to 1000. Default is 500.
Orientation Spread: Sets the spacing, in frames, between orientation history markers in the 3D Perspective View. Increasing this value will cause the markers to appear less frequently, which can improve visualization if the object is rotating at a slower pace. Valid range is 1 to 100. Default is 5.
Orientation Size: Sets the size of the orientation history icon in the 3D Perspective View. Valid range is 1 to 100. Default is 1.
Back to Top