| Customize Help
| Save Settings

M3dimRotate



Function Map
Synopsis
Rotate a specified point cloud or 3D geometry.
Syntax
void M3dimRotate(
MIL_ID SrcContainerBufOrGeometry3dgeoId, //in
MIL_ID DstContainerBufOrGeometry3dgeoId, //in
MIL_INT64 RotationType, //in
MIL_DOUBLE Param1, //in
MIL_DOUBLE Param2, //in
MIL_DOUBLE Param3, //in
MIL_DOUBLE Param4, //in
MIL_DOUBLE CenterX, //in
MIL_DOUBLE CenterY, //in
MIL_DOUBLE CenterZ, //in
MIL_INT64 ControlFlag //in
)
Description

This function applies the specified rotation to the 3D points in a point cloud container or to the geometry in a 3D geometry object.

If the source is a point cloud container, M3dimRotate() applies the specified rotation to the coordinates in the M_COMPONENT_RANGE component. If a M_COMPONENT_NORMALS_MIL component exists in the source container, it is recalculated and added to the destination container, along with the modified M_COMPONENT_RANGE component. The source container's M_COMPONENT_CONFIDENCE component is copied to the destination container. If M_COMPONENT_REFLECTANCE and M_COMPONENT_MESH_MIL components exist in the source, they are also copied to the destination. Any previously existing M_COMPONENT_NORMALS_MIL, M_COMPONENT_REFLECTANCE, or M_COMPONENT_MESH_MIL components are removed from the destination container.

Note that all angles should be specified in degrees. However, unlike most other MIL functions, angles are interpreted using the right-hand grip rule around the axis of rotation; if you wrap your right hand around the axis of rotation, pointing your thumb in the positive direction of the axis, your fingers wrap in the direction of rotation. For example, a positive rotation around the Z-axis corresponds to a rotation that turns the positive X-axis toward the positive Y-axis.

All coordinates are expressed in world units in the working coordinate system.

Note that, when rotating a point cloud, this function affects the coordinates of the points and not their storage location in the container.

Note that this function reference has not been updated for a MIL system added during a MIL update. Refer to the MIL system's release note to see if there is complementary information.
Parameters
This function is not supported on the selected boards.
Parameters
SrcContainerBufOrGeometry3dgeoId

Specifies the source point cloud container or 3D geometry object.

Note that the source and destination must match so that both are containers or both are 3D geometries.

function map For specifying the source container or 3D geometry object identifier
Click to summarizeValue Description
Click to summarize M_XY_PLANE

Specifies the XY (Z=0) plane.

Click to summarize Source 3D geometry object identifier

Specifies the identifier of the source 3D geometry object.

The 3D geometry object must have been previously allocated using M3dgeoAlloc() with M_GEOMETRY, and must have been successfully defined.

(summarize)
Click to summarize Source container identifier

Specifies the identifier of the source point cloud container.

The container must be 3D-processable (that is, if you call MbufInquireContainer() with M_3D_PROCESSABLE, the function returns M_PROCESSABLE). The container must have been previously allocated using MbufAllocContainer() with M_PROC. The container must have at least the 2 components M_COMPONENT_RANGE and M_COMPONENT_CONFIDENCE.

(summarize)
DstContainerBufOrGeometry3dgeoId

Specifies the destination container or 3D geometry object.

Note that the source and destination must match so that both are containers or both are 3D geometries.

function map For specifying the destination container or 3D geometry object identifier
Click to summarizeValue Description
Click to summarize Destination 3D geometry object identifier

Specifies the identifier of the destination 3D geometry object, previously allocated using M3dgeoAlloc() with M_GEOMETRY.

Click to summarize Destination container identifier

Specifies the identifier of the destination container, previously allocated using MbufAllocContainer() with M_PROC. The destination container must not be a child container.

(summarize)
RotationType

Specifies the type of rotation to apply to the point cloud or 3D geometry.

See the Parameter associations section for possible values that can be specified.

Param1

Specifies an attribute of the rotation. Its definition is dependent on the type of rotation selected.

See the Parameter associations section for possible values that can be specified.

Param2

Specifies an attribute of the rotation. Its definition is dependent on the type of rotation selected.

See the Parameter associations section for possible values that can be specified.

Param3

Specifies an attribute of the rotation. Its definition is dependent on the type of rotation selected.

See the Parameter associations section for possible values that can be specified.

Param4

Specifies an attribute of the rotation. Its definition is dependent on the type of rotation selected.

See the Parameter associations section for possible values that can be specified.

CenterX

Specifies the X-coordinate of the point around which the rotation is performed.

To specify the volumetric center point when rotating a 3D geometry, set this parameter to M_GEOMETRY_CENTER. To specify the volumetric center point or center of mass when rotating a point cloud, calculate (using M3dimStat()) and then retrieve (using M3dimGetResult()) the required bounding box (M_BOX_CENTER_...) or centroid (M_CENTROID_...) statistics (respectively), and then pass these coordinates to the CenterX, CenterY and CenterZ parameters.

function map For specifying the X-coordinate value
Click to summarizeValue Description
Click to summarize M_DEFAULT

Specifies the default value; the default value is 0.0.

Click to summarize M_GEOMETRY_CENTER

Specifies the 3D geometry's center point. This setting is only applicable if the geometry is finite (for example, a box, sphere, or finite cylinder).

Note that, if M_GEOMETRY_CENTER is specified, you must set CenterY and CenterZ to M_DEFAULT.

(summarize)
Click to summarize Value

Specifies the X-coordinate value.

CenterY

Specifies the Y-coordinate of the point around which the rotation is performed. If the CenterX parameter is set to M_GEOMETRY_CENTER, set this parameter to M_DEFAULT.

function map For specifying the Y-coordinate value
Click to summarizeValue Description
Click to summarize M_DEFAULT

Specifies the default value; the default value is 0.0.

Click to summarize Value

Specifies the Y-coordinate value.

CenterZ

Specifies the Z-coordinate of the point around which the rotation is performed. If the CenterX parameter is set to M_GEOMETRY_CENTER, set this parameter to M_DEFAULT.

function map For specifying the Z-coordinate value
Click to summarizeValue Description
Click to summarize M_DEFAULT

Specifies the default value; the default value is 0.0.

Click to summarize Value

Specifies the Z-coordinate value.

ControlFlag

Reserved for future expansion and must be set to M_DEFAULT.

The table below lists possible values for the RotationType, Param1, Param2, Param3, and Param4 parameters.

function map For specifying the rotation type
Click to summarizeRotationType Description
Param1
Param2
Param3
Param4
Click to summarize M_ROTATION_AXIS_ANGLE

Specifies a rotation described by an axis and angle of rotation. The axis of rotation is defined by a vector. The angle of rotation is measured in the counter-clockwise direction around the axis of rotation.

(summarize)
Click to summarize Param1

Specifies the X-component of the vector that defines the axis of rotation.

Click to summarize Param2

Specifies the Y-component of the vector that defines the axis of rotation.

Click to summarize Param3

Specifies the Z-component of the vector that defines the axis of rotation.

Click to summarize Param4

Specifies the angle of the rotation, in degrees, around the axis of rotation.

(summarize)
Click to summarize M_ROTATION_AXIS_X

Specifies the minimal rotation that can align the working coordinate system's X-axis with the specified vector.

(summarize)
Click to summarize Param1

Specifies the X-component of the vector.

Click to summarize Param2

Specifies the Y-component of the vector.

Click to summarize Param3

Specifies the Z-component of the vector.

Click to summarize M_ROTATION_AXIS_Y

Specifies the minimal rotation that can align the working coordinate system's Y-axis with the specified vector.

(summarize)
Click to summarize Param1

Specifies the X-component of the vector.

Click to summarize Param2

Specifies the Y-component of the vector.

Click to summarize Param3

Specifies the Z-component of the vector.

Click to summarize M_ROTATION_AXIS_Z

Specifies the minimal rotation that can align the working coordinate system's Z-axis with the specified vector.

(summarize)
Click to summarize Param1

Specifies the X-component of the vector.

Click to summarize Param2

Specifies the Y-component of the vector.

Click to summarize Param3

Specifies the Z-component of the vector.

Click to summarize M_ROTATION_QUATERNION

Specifies a rotation operation that is described by a rotation quaternion.

(summarize)
Click to summarize Param1

Specifies the scalar component of the quaternion.

Click to summarize Param2

Specifies the X-component of the quaternion.

Click to summarize Param3

Specifies the Y-component of the quaternion.

Click to summarize Param4

Specifies the Z-component of the quaternion.

Click to summarize M_ROTATION_X

Specifies a rotation operation around the X-axis. If you displace the center of rotation (using the CenterX, CenterY, and CenterZ parameters), the rotation occurs around an axis that is parallel to the X-axis and runs through the center point.

(summarize)
Click to summarize Param1

Specifies the X-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_XYZ

Specifies a rotation that is described by three distinct rotations about the axes of the working coordinate system in the following order: a rotation about the X-axis, a rotation about the Y-axis, and a rotation about the Z-axis rotation.

(summarize)
Click to summarize Param1

Specifies the X-axis rotation, in degrees.

(summarize)
Click to summarize Param2

Specifies the Y-axis rotation, in degrees.

(summarize)
Click to summarize Param3

Specifies the Z-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_XZY

Specifies a rotation that is described by three distinct rotations about the axes of the working coordinate system in the following order: a rotation about the X-axis, a rotation about the Z-axis, and a rotation about the Y-axis rotation.

(summarize)
Click to summarize Param1

Specifies the X-axis rotation, in degrees.

(summarize)
Click to summarize Param2

Specifies the Z-axis rotation, in degrees.

(summarize)
Click to summarize Param3

Specifies the Y-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_Y

Specifies a rotation operation around the Y-axis. If you displace the center of rotation (using the CenterX, CenterY, and CenterZ parameters), the rotation occurs around an axis that is parallel to the Y-axis and runs through the center point.

(summarize)
Click to summarize Param1

Specifies the Y-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_YXZ

Specifies a rotation that is described by three distinct rotations about the axes of the working coordinate system in the following order: a rotation about the Y-axis, a rotation about the X-axis, and a rotation about the Z-axis rotation.

(summarize)
Click to summarize Param1

Specifies the Y-axis rotation, in degrees.

(summarize)
Click to summarize Param2

Specifies the X-axis rotation, in degrees.

(summarize)
Click to summarize Param3

Specifies the Z-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_YZX

Specifies a rotation that is described by three distinct rotations about the axes of the working coordinate system in the following order: a rotation about the Y-axis, a rotation about the Z-axis, and a rotation about the X-axis rotation.

(summarize)
Click to summarize Param1

Specifies the Y-axis rotation, in degrees.

(summarize)
Click to summarize Param2

Specifies the Z-axis rotation, in degrees.

(summarize)
Click to summarize Param3

Specifies the X-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_Z

Specifies a rotation operation around the Z-axis. If you displace the center of rotation (using the CenterX, CenterY, and CenterZ parameters), the rotation occurs around an axis that is parallel to the Z-axis and runs through the center point.

(summarize)
Click to summarize Param1

Specifies the Z-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_ZXY

Specifies a rotation that is described by three distinct rotations about the axes of the working coordinate system in the following order: a rotation about the Z-axis, a rotation about the X-axis, and a rotation about the Y-axis rotation.

(summarize)
Click to summarize Param1

Specifies the Z-axis rotation, in degrees.

(summarize)
Click to summarize Param2

Specifies the X-axis rotation, in degrees.

(summarize)
Click to summarize Param3

Specifies the Y-axis rotation, in degrees.

(summarize)
Click to summarize M_ROTATION_ZYX

Specifies a rotation that is described by three distinct rotations about the axes of the working coordinate system in the following order: a rotation about the Z-axis, a rotation about the Y-axis, and a rotation about the X-axis rotation.

(summarize)
Click to summarize Param1

Specifies the Z-axis rotation, in degrees.

(summarize)
Click to summarize Param2

Specifies the Y-axis rotation, in degrees.

(summarize)
Click to summarize Param3

Specifies the X-axis rotation, in degrees.

(summarize)
Compilation information
Header Include mil.h.
Library Use mil.lib; mil3dim.lib.
DLL Requires mil.dll; mil3dim.dll.
XY PLANE NOT INITIALIZED NOT PROCESSABLE PROC DEFAULT GEOMETRY CENTER DEFAULT DEFAULT ROTATION AXIS ANGLE ROTATION AXIS X ROTATION AXIS Y ROTATION AXIS Z ROTATION QUATERNION ROTATION X ROTATION XYZ ROTATION XZY ROTATION Y ROTATION YXZ ROTATION YZX ROTATION Z ROTATION ZXY ROTATION ZYX