| Customize Help
| Save Settings

M3dimMatrixTransformList



Function Map
Synopsis
Transform a list of 3D coordinates using the specified transformation matrix, and store the resulting coordinates in the specified destination arrays.
Syntax
void M3dimMatrixTransformList(
MIL_ID Matrix3dgeoId, //in
MIL_INT NumPoints, //in
const MIL_DOUBLE *SrcCoordXArrayPtr, //in
const MIL_DOUBLE *SrcCoordYArrayPtr, //in
const MIL_DOUBLE *SrcCoordZArrayPtr, //in
MIL_DOUBLE *DstCoordXArrayPtr, //out
MIL_DOUBLE *DstCoordYArrayPtr, //out
MIL_DOUBLE *DstCoordZArrayPtr, //out
MIL_INT64 ControlFlag //in
)
Description

This function transforms a list of 3D coordinates using the specified transformation matrix, and stores the resulting coordinates in the specified destination arrays.

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
Matrix3dgeoId

Specifies the identifier of the transformation matrix object. The transformation matrix object must have been previously allocated using M3dgeoAlloc() with M_TRANSFORMATION_MATRIX. The transformation matrix must be any valid affine transformation matrix, where the last row is (0,0,0,1). That is, if you call M3dgeoInquire() with M_AFFINE, the function returns M_TRUE.

NumPoints

Specifies the number of points in the arrays.

When using a standard vector (std::vector) overload function in C++, you can pass M_DEFAULT to this parameter and MIL will automatically determine the size based on the number of items in the vector passed to the SrcCoordXArrayPtr, SrcCoordYArrayPtr, or SrcCoordZArrayPtr parameter.

SrcCoordXArrayPtr
Accepts the address of one of the following:
  • array of type MIL_DOUBLE [optionally, in C++: a reference to a constant std::vector<MIL_DOUBLE> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)
  • array of type MIL_FLOAT [optionally, in C++: a reference to a constant std::vector<MIL_FLOAT> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)

Specifies the address of the array that contains the source X-coordinates, or when ControlFlag is set to M_PACKED, the address of the array that contains a packed set of source X-, Y-, and Z-coordinates.

SrcCoordYArrayPtr
Accepts the address of one of the following:
  • array of type MIL_DOUBLE [optionally, in C++: a reference to a constant std::vector<MIL_DOUBLE> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)
  • array of type MIL_FLOAT [optionally, in C++: a reference to a constant std::vector<MIL_FLOAT> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)

Specifies the address of the array that contains the source Y-coordinates.

This parameter can be set to M_NULL when ControlFlag is set to M_PACKED. See the description of M_PACKED for more details.

SrcCoordZArrayPtr
Accepts the address of one of the following:
  • array of type MIL_DOUBLE [optionally, in C++: a reference to a constant std::vector<MIL_DOUBLE> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)
  • array of type MIL_FLOAT [optionally, in C++: a reference to a constant std::vector<MIL_FLOAT> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)

Specifies the address of the array that contains the source Z-coordinates.

This parameter can be set to M_NULL when ControlFlag is set to M_PACKED. See the description of M_PACKED for more details.

DstCoordXArrayPtr
Accepts the address of one of the following:
  • array of type MIL_DOUBLE [optionally, in C++: a reference to a std::vector<MIL_DOUBLE> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)
  • array of type MIL_FLOAT [optionally, in C++: a reference to a std::vector<MIL_FLOAT> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)

Specifies the address of the array in which to store the destination X-coordinates, or when ControlFlag is set to M_PACKED, the address of the array in which to store a packed set of destination X-, Y-, and Z-coordinates.

DstCoordYArrayPtr
Accepts the address of one of the following:
  • array of type MIL_DOUBLE [optionally, in C++: a reference to a std::vector<MIL_DOUBLE> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)
  • array of type MIL_FLOAT [optionally, in C++: a reference to a std::vector<MIL_FLOAT> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)

Specifies the address of the array in which to store the destination Y-coordinates.

This parameter can be set to M_NULL when ControlFlag is set to M_PACKED. See the description of M_PACKED for more details.

DstCoordZArrayPtr
Accepts the address of one of the following:
  • array of type MIL_DOUBLE [optionally, in C++: a reference to a std::vector<MIL_DOUBLE> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)
  • array of type MIL_FLOAT [optionally, in C++: a reference to a std::vector<MIL_FLOAT> ] (and a maximum array rank for C# of 1)
    Required array size:(NumPoints)

Specifies the address of the array in which to store the destination Z-coordinates.

This parameter can be set to M_NULL when ControlFlag is set to M_PACKED. See the description of M_PACKED for more details.

ControlFlag

Specifies whether source or destination points are passed and/or returned in a packed format, or specifies to apply only rotation and scale transformations.

Note that you can combine M_ROTATION_AND_SCALE with M_PACKED or M_PLANAR (that is, you can set the ControlFlag parameter to M_ROTATION_AND_SCALE + M_PACKED or M_ROTATION_AND_SCALE + M_PLANAR).

function map For specifying the control flag
Click to summarizeValue Description
Click to summarize M_DEFAULT

Same as M_PLANAR.

Click to summarize M_PACKED

Specifies that the source points are passed in a packed format and/or that the destination points should be returned in a packed format, depending on what you pass to the SrcCoordYArrayPtr, SrcCoordZArrayPtr, DstCoordYArrayPtr, and DstCoordZArrayPtr parameters.

If both SrcCoordYArrayPtr and SrcCoordZArrayPtr are passed M_NULL, SrcCoordXArrayPtr is assumed to be a packed set of X-, Y-, and Z-coordinates.

If both DstCoordYArrayPtr and DstCoordZArrayPtr are passed M_NULL, DstCoordXArrayPtr is filled with a packed set of X-, Y-, and Z-coordinates.

If SrcCoordYArrayPtr, SrcCoordZArrayPtr, DstCoordYArrayPtr, and DstCoordZArrayPtr are passed M_NULL, SrcCoordXArrayPtr is assumed to be a packed set of X-, Y-, and Z-coordinates, and DstCoordXArrayPtr is filled with a packed set of X-, Y-, and Z-coordinates.

(summarize)
Click to summarize M_PLANAR

Specifies that the source and destination coordinates are stored in a planar format; that is, the X-, Y-, and Z-coordinate values are stored in 3 separate arrays.

When M_PLANAR is specified, no source or destination array pointer parameters can be set to M_NULL.

(summarize)
Click to summarize M_ROTATION_AND_SCALE

Specifies to apply only the rotation and scale parts of the transformation to the source points.

Compilation information
Header Include mil.h.
Library Use mil.lib; mil3dim.lib.
DLL Requires mil.dll; mil3dim.dll.
DEFAULT PACKED PLANAR ROTATION AND SCALE