Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The cCameraGroupPointCloudSettings class contains variables for configuring the point cloud reconstruction settings. When first declaring an instance of this class, it will query the currently configured point cloud settings, and you can view or modify the settings through its member methods. There are multiple enum variables for defining various reconstruction settings. Please refer to the Reconstruction and 2D Mode page for detailed descriptions on individual settings.
These member functions are used for changing reconstruction settings (bool, double, long) of a cCameraGroupPointCloudSettings instance. Call matching data type functions to modify the parameters.
These member functions fetches a point cloud reconstruction parameter from a cCameraGroupPointCloudsettings instance and saves it in the designated address. Call matching data type functions to obtain the parameters.
<source> class TTAPI cCameraGroupPointCloudSettings { public:
This class can be inherited into your TTAPI project for testing Rigid Body solutions. Input desired testing protocol for Rigid Bodies within the RigidBodySolutionTest member function of the inherited class, and attach/detach this class onto a Rigid Body using the following functions.
The cCameraGroupFilterSettings class determines 2D object filter settings for a camera group, which consists of multiple cameras.
FilterNone will not use any filters.
FilterSizeRoundness distinguishes marker reflections by the marker size and circularity of the reflection. More specifically, it looks at the number of pixels seen by the imager (MinMarkerSize and MaxMarkerSize) as well as the symmetry ratio of the shape of reflections (MinRoundness).
Use TT_CameraGroupFilterSettings and TT_SetCameraGroupFilterSettings functions to obtain the existing filter settings and to apply an instance to a camera group.
For explanations on this filter in Motive, read through the Reconstruction and 2D Mode page.
This class contains size properties of reconstructed 3D markers. The size of reconstructed marker is defined by its diameter (in mm), and an instance of this class can be assigned to a camera group. Use the and Motive API functions for obtaining and assigning an instance of this class.
MarkerSizeCalculated: This marker size type will calculate suitable diameter of a marker to be displayed.
MarkerSizeFixed: This marker size type will override calculated diameter and assign a set diameter.
MarkerSizeCount: Returns number of marker size types.
When using the Motive API, you can attach or detach cTTAPIListener class to a project by using the following functions.
TTAPIFrameAvailable
TTAPIFrameAvailable callback is called when a new synchronized group of camera frames has been delivered to the TTAPI and is ready for processing. You can use this notification to then call TT_Update() without having to poll blindly for new data.
TTAPICameraConnected
This callback function is called when a new camera is connected to the system.
TTAPICameraDisconnected
This callback function is called when a camera is disconnected from the system.
InitialPointCloud
InitialPointCloud is called when the initial point cloud is calculated from the connected cameras. During this callback 3D markers can be added (up to MaxMarkers) or removed by modifying the Markers list as well as the MarkerCount variable. After this callback the marker list is passed onto the Rigid Body solver.
ApplyContinuousCalibrationResult
By overriding this function in the attached listener class, you can control when the gets applied. The continuous calibration will continue to call this callback function when the updated calibration is available. You can check parameters in this functions and simply return True to accept the updated calibration, and return False to discard the updated calibration.
There is a known issue where default constructor for Rigidbody setting is not set. We will be addressing this issue in the next release. Until then, please create a Rigid Body in Motive and use the existing definitions.
cRigidBodySettings class contains all of setting variables for configuring Rigid Body asset properties.
In the Motive API, you can use...
TT_RigidBodySettings function to obtain and save configured Rigid Body settings in to a cRigidBodySettings instance.
TT_SetRigidBodySettings function to assign a cRigidBodySettings instance to a Rigid Body asset in order to apply the settings.
Refer to the below source code for Rigid Body properties available in the cRigidBodySettings class.
For more information on each settings read through the Properties: Rigid Body page.
Most of the settings in the cRigidBodySettings class is described in the Properties: Rigid Body page.
cRigidBodySettings class contains all of setting variables for configuring Rigid Body asset properties.
In the Motive API, you can use...
TT_RigidBodySettings function to obtain and save configured Rigid Body settings in to a cRigidBodySettings instance.
TT_SetRigidBodySettings function to assign a cRigidBodySettings instance to a Rigid Body asset in order to apply the settings.
Refer to the below source code for Rigid Body properties available in the cRigidBodySettings class.
For more information on each settings read through the Properties: Rigid Body page.
Most of the settings in the cRigidBodySettings class is described in the Properties: Rigid Body page.
Allows a custom name to be assigned to the Rigid Body. Default is "Rigid Body X" where x is the Rigid Body ID.
Enables/Disables tracking of the selected Rigid Body. Disabled Rigid Bodies will not be tracked, and its data will not be included in the exported or streamed tracking data.
User definable ID for the selected Rigid Body. When working with capture data in the external pipeline, this value can be used to address specific Rigid Bodies in the scene.
The minimum number of markers that must be tracked and labeled in order for a Rigid Body asset, or each Skeleton bone, to be booted or first tracked.
The minimum number of markers that must be tracked and labeled in order for a Rigid Body asset, or each Skeleton bone, to continue to be tracked after the initial boot.
_[Advanced]_The order of the Euler axis used for calculating the orientation of the Rigid Body and Skeleton bones. Motive computes orientations in Quaternion and converts them into an Euler representation as needed. For exporting specific Euler angles, it's recommended to configure it from the Exporter settings, or for streaming, convert Quaternion into Euler angles on the client-side.
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.
Show the corresponding Rigid Body in the 3D viewport when it is tracked by the camera system.
Color of the selected Rigid Body in the 3D Perspective View. Clicking on the box will bring up the color picker for selecting the color.
For Rigid Bodies, this property shows, or hides, visuals of the Rigid Body pivot point.
[Advanced] 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.
Shows a history of the Rigid Body’s position. When enabled, you can set the history length and the tracking history will be drawn in the Perspective view.
Shows the Asset Model Markers as transparent spheres on the Rigid Body. Asset mode markers are the expected marker locations according to the Rigid Body solve.
Draws lines between labeled Rigid Body or Skeleton markers and corresponding expected marker locations. This helps to visualize the offset distance between actual marker locations and the asset model markers.
[Advanced] 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.
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 setting will be visible if the Replace Geometry setting is enabled. Here, you can load an OBJ file to replace the Rigid Body. Scale, positions, and orientations of the attached geometry can be configured under the following section also. When a OBJ file is loaded, properties configured in the corresponding MTL files alongside the OBJ file will be loaded as well.
Attached Geometry Settings
When the Attached Geometry is enabled, you can attach a 3D model to a Rigid Body and the following setting will be available also.
Pivot Scale: Adjusts the size of the Rigid Body pivot point.
Scale: Rescales the size of attached object.
Yaw (Y): Rotates the attached object in respect to the Y-axis of the Rigid Body coordinate axis.
Pitch (X): Rotates the attached object in respect to the X-axis of the Rigid Body coordinate axis.
Roll (Z): Rotates the attached object in respect to the Z-axis of the Rigid Body coordinate axis.
X: Translate the position of attached object in x-axis in respect to the Rigid Body coordinate.
Y: Translate the position of attached object in y-axis in respect to the Rigid Body coordinate.
Z: Translate the position of attached object in z-axis in respect to the Rigid Body coordinate.
Opacity: Sets the opacity of an attached object. An OBJ file typically comes with a corresponding MTL file which defines its properties, and the transparency of the object is defined within these MTL files. The Opacity value under the Rigid Body properties applies a factor between 0 ~ 1 in order to rescale the loaded property. In other words, you can set the transparency in the MTL file and rescale them using the Opacity property in Motive.
IMU feature is not fully supported in Motive 3.x. Please use Motive 2.3 for using IMU active components.
Uplink ID assigned to the Tag or Puck using the Active Batch Programmer. This ID must match with the Uplink ID assigned to the Active Tag or Puck that was used to create the Rigid Body.
Radio frequency communication channel configured on the Active Tag, or Puck, that was used to define the corresponding Rigid Body. This must match the RF channel configured on the active component; otherwise, IMU data will not be received.
Applies double exponential smoothing to translation and rotation of the Rigid Body. Increasing this setting may help smooth out noise in the Rigid Body tracking, but excessive smoothing can introduce latency. Default is 0 (disabled).
Compensate for system latency when tracking of the corresponding Rigid Body by predicting its movement into the future. Please note that predicting further into the future may impact the tracking stability.
[Advanced] When needed, you can damp down translational and/or rotational tracking of a Rigid Body or a Skeleton bone on selected axis.
To attach cCameraModule instances to a camera object using Motive API, call the following functions:
to attach.
to detach