Skip to main content

M3dimMatrixTransformList

BoardSupported
Host SystemYes
V4L2Yes
Clarity UHDYes
Concord PoENo
GenTLYes
GevIQYes
GigE VisionYes
IndioNo
Iris GTXYes
Radient eV-CLYes
Rapixo CLYes
Rapixo CoFYes
Rapixo CXPYes
USB3 VisionYes

Transform a list of 3D coordinates using the specified transformation matrix, and store the resulting coordinates in the specified destination arrays.

Syntax

void M3dimMatrixTransformList(
AIL_ID Matrix3dgeoId, //in
AIL_INT NumPoints, //in
const AIL_DOUBLE * SrcCoordXArrayPtr, //in
const AIL_DOUBLE * SrcCoordYArrayPtr, //in
const AIL_DOUBLE * SrcCoordZArrayPtr, //in
AIL_DOUBLE * DstCoordXArrayPtr, //out
AIL_DOUBLE * DstCoordYArrayPtr, //out
AIL_DOUBLE * DstCoordZArrayPtr, //out
AIL_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.

Parameters

Matrix3dgeoId (in, AIL_ID)

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 (in, AIL_INT)

Specifies the number of points in the arrays.

SrcCoordXArrayPtr *(in, AIL_DOUBLE)

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 *(in, AIL_DOUBLE)

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

SrcCoordZArrayPtr *(in, AIL_DOUBLE)

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

DstCoordXArrayPtr *(out, AIL_DOUBLE)

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 *(out, AIL_DOUBLE)

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

DstCoordZArrayPtr *(out, AIL_DOUBLE)

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

ControlFlag (in, AIL_INT64)

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

For specifying the control flag

ValueDescription
M_DEFAULT
M_PACKEDSpecifies 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. | | M_PLANAR (default) | 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.

Note: When M_PLANAR is specified, no source or destination array pointer parameters can be set to M_NULL. | | M_ROTATION_AND_SCALE | Specifies to apply only the rotation and scale parts of the transformation to the source points. |

Copyright © 2026 Zebra Technologies.