Skip to main content

M3dimGetResult

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

Get the specified type of result from a 3D image processing result buffer.

Syntax

AIL_DOUBLE M3dimGetResult(
AIL_ID Result3dimId, //in
AIL_INT64 ResultType, //in
void * ResultArrayPtr //out
)

Description

This function retrieves the result(s) of the specified type from a result buffer.

Parameters

Result3dimId (in, AIL_ID)

Specifies the identifier of the 3D image processing result buffer from which to retrieve results. The result buffer must have been previously allocated on the system using M3dimAllocResult with M_FIND_TRANSFORMATION_RESULT, M_LATTICE_RESULT, M_PROFILE_RESULT, or M_STATISTICS_RESULT.

ResultType (in, AIL_INT64)

Specifies the type of result to retrieve.

ResultArrayPtr *(out, void)

Specifies the address of the array in which to write the requested information.

Parameter Associations

For specifying the type of result to retrieve from a find transformation, profile, or statistics 3D image processing result buffer

The following Result3dimId, ResultType, and ResultArrayPtr parameter settings can be specified for different types of 3D image processing result buffers.


Find transformation 3D image processing result ID

Specifies the identifier of a find transformation 3D image processing result buffer. For an M_FIND_TRANSFORMATION_RESULT result buffer, results are available after using M3dimFindTransformation to fill the result buffer with the rigid or affine transformation matrix.

M_NUMBER_OF_POINT_PAIRS

Retrieves the number of valid point pairs used when finding the transformation.

M_RMS_ERROR

Retrieves the root-mean-square (RMS) error between the point pairs if the matrix was applied. Aurora Imaging Library calculates the RMS error using the following formula: [Image: 3dim_FindTransformation_RMS_error.png]

M_STATUS

Retrieves the status of the find transformation operation.

ValueDescription
M_ALL_POINTS_COPLANARSpecifies that all point pairs are in the same plane and that the operation to find an affine transformation could not proceed.
M_NOT_ENOUGH_POINT_PAIRSSpecifies that there are either less than 3 point pairs (for a rigid transformation) or 4 point pairs (for an affine transformation) and that the operation could not proceed.
M_NOT_INITIALIZEDSpecifies that the operation was not initialized.
M_SUCCESSSpecifies that the transformation matrix was successfully found.

Lattice 3D image processing result ID

Specifies the identifier of a lattice 3D image processing result buffer. For an M_LATTICE_RESULT result buffer, results are available after using M3dimLattice to fill the result buffer with a lattice.

M_CELL_SIZE_X

Retrieves the cell size in the X-direction. Note that if M_NUMBER_OF_GRID_SIZES is greater than 1, this result depends on the grid size specified using M3dimControl with M_GRID_SIZE_INDEX.

ValueDescription
M_INFINITESpecifies an infinite cell size along X.
Value > 0Specifies the cell size along X, in world units.

M_CELL_SIZE_Y

Retrieves the cell size in the Y-direction. Note that if M_NUMBER_OF_GRID_SIZES is greater than 1, this result depends on the grid size specified using M3dimControl with M_GRID_SIZE_INDEX.

ValueDescription
M_INFINITESpecifies an infinite cell size along Y.
Value > 0Specifies the cell size along Y, in world units.

M_CELL_SIZE_Z

Retrieves the cell size in the Z-direction. Note that if M_NUMBER_OF_GRID_SIZES is greater than 1, this result depends on the grid size specified using M3dimControl with M_GRID_SIZE_INDEX.

ValueDescription
M_INFINITESpecifies an infinite cell size along Z.
Value > 0Specifies the cell size along Z, in world units.

M_END_POINT_X

Retrieves the X-coordinate of the lattice's end point, expressed in the working coordinate system.

M_END_POINT_Y

Retrieves the Y-coordinate of the lattice's end point, expressed in the working coordinate system.

M_END_POINT_Z

Retrieves the Z-coordinate of the lattice's end point, expressed in the working coordinate system.

M_NUMBER_OF_CELLS_X

Retrieves the number of cells in the X-direction. Note that if M_NUMBER_OF_GRID_SIZES is greater than 1, this result depends on the grid size specified using M3dimControl with M_GRID_SIZE_INDEX.

ValueDescription
Value > 0Specifies the number of cells along X.

M_NUMBER_OF_CELLS_Y

Retrieves the number of cells in the Y-direction. Note that if M_NUMBER_OF_GRID_SIZES is greater than 1, this result depends on the grid size specified using M3dimControl with M_GRID_SIZE_INDEX.

ValueDescription
Value > 0Specifies the number of cells along Y.

M_NUMBER_OF_CELLS_Z

Retrieves the number of cells in the Z-direction. Note that if M_NUMBER_OF_GRID_SIZES is greater than 1, this result depends on the grid size specified using M3dimControl with M_GRID_SIZE_INDEX.

ValueDescription
Value > 0Specifies the number of cells along Z.

M_NUMBER_OF_GRID_SIZES

Retrieves the number of possible grid sizes for the lattice. You can specify the index of the grid size to use, using M3dimControl with M_GRID_SIZE_INDEX.

ValueDescription
Value > 0Specifies the number of grid sizes.

M_SIZE_X

Retrieves the size of the lattice along the X-direction, in world units.

M_SIZE_Y

Retrieves the size of the lattice along the Y-direction, in world units.

M_SIZE_Z

Retrieves the size of the lattice along the Z-direction, in world units.

M_SPARSITY_DIMENSION

Retrieves the approximate number of dimensions in which points from the source point cloud are merged into each cell of the lattice. For example, if the source point cloud is much denser in X than in Y and Z, merging might only occur along the X-dimension when the grid size is small. As the grid size increases, the cells merge points along more dimensions. Note that if M_NUMBER_OF_GRID_SIZES is greater than 1, this result depends on the grid size specified using M3dimControl with M_GRID_SIZE_INDEX. This result type is only available when M3dimControl with M_LATTICE_MODE is set to M_SPARSITY_CHANGE.

ValueDescription
M_INVALIDSpecifies that the dimensions could not be calculated because a bounding box containing a single point was supplied to M3dimLattice.
Value > 0Specifies the approximate number of dimensions.

M_START_POINT_X

Retrieves the X-coordinate of the lattice's start point, expressed in the working coordinate system.

M_START_POINT_Y

Retrieves the Y-coordinate of the lattice's start point, expressed in the working coordinate system.

M_START_POINT_Z

Retrieves the Z-coordinate of the lattice's start point, expressed in the working coordinate system.

M_STATUS

Retrieves the status of the lattice operation.

ValueDescription
M_NOT_ENOUGH_VALID_DATASpecifies that the lattice operation failed because a bounding box was not provided and could not be calculated from the point cloud because there were not enough valid points (less than 2).
M_NOT_INITIALIZEDSpecifies that the lattice 3D image processing result buffer was not used in a call to M3dimLattice, and contains no results.
M_SUCCESSSpecifies that the lattice operation completed successfully.

Profile 3D image processing result ID

Specifies the identifier of a profile 3D image processing result buffer. For an M_PROFILE_RESULT result buffer, results are available after using M3dimProfile or M3dimProfileEx to fill the result buffer with a profile. > Note: Note that you can transform coordinates from M_PROFILE_PLANE_... to M_WORLD_... (and vice versa). To do so, copy profile results into a transformation matrix, using M3dimCopyResult with M_MATRIX_PROFILE_PLANE_TO_WORLD or M_MATRIX_WORLD_TO_PROFILE_PLANE, and then pass the resulting transformation matrix to M3dimMatrixTransformList. > Note: For depth maps, transforming M_WORLD_... point coordinate values using McalTransformCoordinate3dList will yield values close to those obtained with M_PROFILE_PLANE_..., but exactly on the profile line.

M_NUMBER_OF_POINTS_MISSING_DATA

Retrieves the number of missing data points (gap pixels) encountered when creating the depth map profile; for other profiles, this result type always returns 0. This result type is available only after an M3dimProfile operation.

M_NUMBER_OF_POINTS_VALID

Retrieves the number of valid points along the profile. Note that all extracted profile points are valid; therefore, this number equals the total number of points in the profile. This result type is available only after an M3dimProfile operation.

M_PIXEL_X

Retrieves the pixel X-coordinates for valid points included in the profile. Each 3D point has a corresponding pixel in the depth map image buffer or point cloud range component. M_PIXEL_X returns an integer value, for each profile point, which corresponds to the pixel's position along X in the depth map or range component. > Note: Note that M_PIXEL_X is unavailable for profiles of type M_PROFILE_MESH and M_PROFILE_GEOMETRY. This result type is available only after an M3dimProfile operation.

M_PIXEL_Y

Retrieves the pixel Y-coordinates for valid points included in the profile. Each 3D point has a corresponding pixel in the depth map image buffer or point cloud range component. M_PIXEL_Y returns an integer value, for each profile point, which corresponds to the pixel's position along Y in the depth map or range component. > Note: Note that M_PIXEL_Y is unavailable for profiles of type M_PROFILE_MESH. This result type is available only after an M3dimProfile operation.

M_PROFILE_PLANE_X

Retrieves the X-coordinates from the resulting profile, expressed in the coordinate system of the slicing plane itself, in world units. For a depth map profile, points are extracted from pixels along the specified line. M_PROFILE_PLANE_X returns the real world distance along that line, for each extracted point. Note that the line's start point (set using M3dimProfile with M_PROFILE_DEPTH_MAP and M_PROFILE_DEPTH_MAP and M_PROFILE_DEPTH_MAP, or using M3dimProfileEx with Param2 and Param3) represents a distance of 0. The line is effectively the X-axis for a plot of M_PROFILE_PLANE_X and M_PROFILE_PLANE_Y values, which sit on the slicing plane. For other profile types, the returned values correspond to the X-coordinates of the profile's points, expressed in the specified slicing plane's coordinate system. You can draw the M_PROFILE_PLANE_X and M_PROFILE_PLANE_Y values in a 2D display using MgraDots. Alternatively, you can draw the profile points using M3dimDraw3d.

M_PROFILE_PLANE_Y

Retrieves the Y-coordinates from the resulting profile, expressed in the coordinate system of the slicing plane itself, in world units. For a depth map profile, the returned values correspond to the depth at each pixel underneath the specified line. For other profile types, the returned values correspond to the Y-coordinates of the profile's points, expressed in the specified slicing plane's coordinate system. You can draw the M_PROFILE_PLANE_X and M_PROFILE_PLANE_Y values in a 2D display using MgraDots. Alternatively, you can draw the profile points using M3dimDraw3d.

M_PROFILE_TYPE

Retrieves the profile type.

ValueDescription
M_NOT_INITIALIZEDSpecifies that a profile type has not been defined for the profile result.
M_PROFILE_DEPTH_MAPSpecifies a depth map profile. This result is available only after an M3dimProfile operation.
M_PROFILE_DEPTH_MAP_UNIFORMSpecifies a uniform depth map profile, where the points are at equal distances from each other along the profile line defined by the start and end points. This result is available only after an M3dimProfileEx operation.
M_PROFILE_GEOMETRYSpecifies a 3D geometry profile. This result is available only after an M3dimProfile operation.
M_PROFILE_MESHSpecifies a mesh profile. This result is available only after an M3dimProfile operation.
M_PROFILE_POINT_CLOUDSpecifies a point cloud profile. This result is available only after an M3dimProfile operation.

M_STATUS

Retrieves the status of the profile operation.

ValueDescription
M_COMPLETESpecifies that the profile operation completed successfully.
M_INFINITE_PROFILESpecifies that the profile operation failed and yielded an infinite result. This result is available only after an M3dimProfile operation.
M_MISSING_COMPONENT_MESH_AILSpecifies that the profile operation failed because the source point cloud container does not have an M_COMPONENT_MESH_AIL component. This result is available only after an M3dimProfile operation.
M_NO_PROFILESpecifies that no profile was found; the slicing plane did not intersect the source.
M_NOT_INITIALIZEDSpecifies that the profile operation was not initialized.

M_WORLD_X

Retrieves the world X-coordinates for the extracted points. For a depth map, the returned values correspond to each extracted point's pixel position along X, in world units. For a point cloud, mesh, or 3D geometry profile, the returned values correspond to each extracted point's position in the point cloud along X, in world units. You can draw the M_WORLD_X, M_WORLD_Y, and M_WORLD_Z values in a 3D display using M3dgraDots.

M_WORLD_Y

Retrieves the world Y-coordinates for the extracted points. For a depth map, the returned values correspond to each extracted point's pixel position along Y, in world units. For a point cloud, mesh, or 3D geometry profile, the returned values correspond to each extracted point's position in the point cloud along Y, in world units. You can draw the M_WORLD_X, M_WORLD_Y, and M_WORLD_Z values in a 3D display using M3dgraDots.

M_WORLD_Z

Retrieves the world Z-coordinates for the extracted points. For a depth map, the returned values correspond to each extracted point's depth value (distance along Z), in world units. For a point cloud, mesh, or 3D geometery profile, the returned values correspond to each extracted point's position in the point cloud along Z, in world units. You can draw the M_WORLD_X, M_WORLD_Y, and M_WORLD_Z values in a 3D display using M3dgraDots.


Statistics 3D image processing result ID

Specifies the identifier of a statistics 3D image processing result buffer. For an M_STATISTICS_RESULT result buffer, results are available after using M3dimStat to fill the result buffer with statistics on a container's point cloud, on a depth map, or on a 3D geometry.

?

?

M_BOX_CENTER_X

Retrieves the X-coordinate of the center of the bounding box.

M_BOX_CENTER_Y

Retrieves the Y-coordinate of the center of the bounding box.

M_BOX_CENTER_Z

Retrieves the Z-coordinate of the center of the bounding box.

M_CENTROID_X

Retrieves the X-coordinate of the centroid. This result type is available for centroid, moments, or PCA statistics results; moments results must be of order 1 or greater.

M_CENTROID_Y

Retrieves the Y-coordinate of the centroid. This result type is available for centroid, moments, or PCA statistics results; moments results must be of order 1 or greater.

M_CENTROID_Z

Retrieves the Z-coordinate of the centroid. This result type is available for centroid, moments, or PCA statistics results; moments results must be of order 1 or greater.

M_COMPONENT_OF_INTEREST

Retrieves the component for which the statistics were calculated. This result type is available for centroid, moments, or PCA statistics results; moments results must be of order 1 or greater.

ValueDescription
M_COMPONENT_NORMALS_AILSpecifies the normals component.
M_COMPONENT_RANGESpecifies the range component.

M_COVARIANCE_MATRIX

Retrieves the 9 entries that make up the covariance matrix, in row-major order. The covariance matrix is defined as a 3x3 matrix of second order moments: | | | | | --- | --- | --- | | xx | xy | xz | | xy | yy | yz | | xz | yz | zz | The moments are central or ordinary, according to M3dimControl with M_PCA_MODE. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_DISTANCE_TO_NEAREST_NEIGHBOR_AVERAGE

Retrieves the average distance to the nearest neighbor. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR and M_CALCULATE_AVERAGE control types.

M_DISTANCE_TO_NEAREST_NEIGHBOR_MAX

Retrieves the maximum distance to the nearest neighbor. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR and M_CALCULATE_MAX control types.

M_DISTANCE_TO_NEAREST_NEIGHBOR_MEDIAN

Retrieves the median distance to the nearest neighbor. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR and M_CALCULATE_MEDIAN control types.

M_DISTANCE_TO_NEAREST_NEIGHBOR_MIN

Retrieves the minimum distance to the nearest neighbor. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR and M_CALCULATE_MIN control types.

M_DISTANCE_TO_NEAREST_NEIGHBOR_ROBUST_STDEV

Retrieves the robust standard deviation of distances between each point and its nearest neighbor. M_DISTANCE_TO_NEAREST_NEIGHBOR_ROBUST_STDEV is computed using the median absolute deviation (MAD) and a scale factor of 1.4826. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR and M_CALCULATE_ROBUST_STDEV control types.

M_DISTANCE_TO_NEAREST_NEIGHBOR_STDEV

Retrieves the standard deviation of distances between each point and its nearest neighbor. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR and M_CALCULATE_STDEV control types.

M_EIGENVALUE_1

Retrieves the eigenvalue corresponding to the first principal axis. The first principal axis is the direction along which there is the most variance. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_EIGENVALUE_2

Retrieves the eigenvalue corresponding to the second principal axis. The second principal axis is the direction along which there is the second most variance, perpendicular to the first principal axis. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_EIGENVALUE_3

Retrieves the eigenvalue corresponding to the third principal axis. The third principal axis is perpendicular to the first and second principal axes. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_MAX_X

Retrieves the maximum X-coordinate of the bounding box. > Note: This result type is not available for a semi-oriented bounding box, unless M3dimControl with M_BOX_SEMI_ORIENTED_ROTATION_AXIS is set to M_AXIS_X.

M_MAX_Y

Retrieves the maximum Y-coordinate of the bounding box. > Note: This result type is not available for a semi-oriented bounding box, unless M3dimControl with M_BOX_SEMI_ORIENTED_ROTATION_AXIS is set to M_AXIS_Y.

M_MAX_Z

Retrieves the maximum Z-coordinate of the bounding box. > Note: This result type is not available for a semi-oriented bounding box, unless M3dimControl with M_BOX_SEMI_ORIENTED_ROTATION_AXIS is set to M_AXIS_Z.

M_MIN_X

Retrieves the minimum X-coordinate of the bounding box. > Note: This result type is not available for a semi-oriented bounding box, unless M3dimControl with M_BOX_SEMI_ORIENTED_ROTATION_AXIS is set to M_AXIS_X.

M_MIN_Y

Retrieves the minimum Y-coordinate of the bounding box. > Note: This result type is not available for a semi-oriented bounding box, unless M3dimControl with M_BOX_SEMI_ORIENTED_ROTATION_AXIS is set to M_AXIS_Y.

M_MIN_Z

Retrieves the minimum Z-coordinate of the bounding box. > Note: This result type is not available for a semi-oriented bounding box, unless M3dimControl with M_BOX_SEMI_ORIENTED_ROTATION_AXIS is set to M_AXIS_Z.

M_NEIGHBORHOOD_ASPECT_RATIO_AVERAGE

Retrieves the average local aspect ratio, across all points. This result is available only when you have enabled the M3dimControl M_NEIGHBORHOOD_ASPECT_RATIO and M_CALCULATE_AVERAGE control types.

M_NEIGHBORHOOD_ASPECT_RATIO_MAX

Retrieves the maximum local aspect ratio, across all points. Note that this value is limited by M_NEIGHBORHOOD_ASPECT_RATIO_CLIPPING_VALUE. This result is available only when you have enabled the M3dimControl M_NEIGHBORHOOD_ASPECT_RATIO and M_CALCULATE_MAX control types.

M_NEIGHBORHOOD_ASPECT_RATIO_MEDIAN

Retrieves the median local aspect ratio, across all points. This result is available only when you have enabled the M3dimControl M_NEIGHBORHOOD_ASPECT_RATIO and M_CALCULATE_MEDIAN control types.

M_NEIGHBORHOOD_ASPECT_RATIO_MIN

Retrieves the minimum local aspect ratio, across all points. This result is available only when you have enabled the M3dimControl M_NEIGHBORHOOD_ASPECT_RATIO and M_CALCULATE_MIN control types.

M_NEIGHBORHOOD_ASPECT_RATIO_ROBUST_STDEV

Retrieves the robust standard deviation of local aspect ratios, across all points. M_NEIGHBORHOOD_ASPECT_RATIO_ROBUST_STDEV is computed using the median absolute deviation (MAD) and a scale factor of 1.4826. For each point, Aurora Imaging Library fits a local plane to neighboring points, determines the plane's aspect ratio, and incorporates the local aspect ratio into the robust standard deviation calculation. This result is available only when you have enabled the M3dimControl M_NEIGHBORHOOD_ASPECT_RATIO and M_CALCULATE_ROBUST_STDEV control types.

M_NEIGHBORHOOD_ASPECT_RATIO_STDEV

Retrieves the standard deviation of local aspect ratios, across all points. For each point, Aurora Imaging Library fits a local plane to neighboring points, determines the plane's aspect ratio, and incorporates the local aspect ratio into the standard deviation calculation. This result is available only when you have enabled the M3dimControl M_NEIGHBORHOOD_ASPECT_RATIO and M_CALCULATE_STDEV control types.

M_NEIGHBORHOOD_HEALTHY_PERCENTAGE

Retrieves the percentage of points that have a healthy neighborhood. This is the percentage of points with at least M_NEIGHBORHOOD_HEALTHY_THRESHOLD valid neighbors. Most neighborhood-based functions (for example, M3dimNormals) will work poorly if this value is too low. This result is available only when you have enabled the M3dimControl M_NUMBER_OF_VALID_NEIGHBORS control type.

M_NORMALIZATION_MODE

Retrieves the mode used to compute the normalization matrix. This result type is available for bounding box statistics results; the bounding box must be axis-aligned (M_BOX_ORIENTATION set to M_AXIS_ALIGNED).

ValueDescription
M_NORMALIZE_SIGNEDSpecifies that the point cloud fits a signed unit box.
M_NORMALIZE_UNSIGNEDSpecifies that the point cloud fits an unsigned unit box.

M_NORMALIZATION_SCALE

Retrieves the scale mode used in the statistics context to compute the normalization matrix. This result type is available for bounding box statistics results; the bounding box must be axis-aligned (M_BOX_ORIENTATION set to M_AXIS_ALIGNED).

ValueDescription
M_NON_UNIFORMSpecifies that each dimension was scaled differently.
M_UNIFORMSpecifies that the same scale value was used for all dimensions. This means that the largest dimension was scaled to fit the unit box, and the remaining dimensions have the same or smaller lengths.

M_NUMBER_OF_POINTS_ISOLATED

Retrieves the number of isolated points found during the distance-to-nearest-neighbor, surface variation, aspect ratio, and number-of-valid-neighbors statistics calculations. Isolated points are points with no neighbors except themselves (as defined by the neighborhood controls, M_MAXIMUM_NUMBER_NEIGHBORS, M_MAX_DISTANCE, M_NEIGHBOR_SEARCH_MODE, and M_NEIGHBORHOOD_ORGANIZED_SIZE). This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR, M_SURFACE_VARIATION, M_NEIGHBORHOOD_ASPECT_RATIO, or M_NUMBER_OF_VALID_NEIGHBORS control types.

M_NUMBER_OF_POINTS_MISSING_DATA

Retrieves the number of points that are missing data. This result type is available for centroid, moments, number-of-points, or PCA statistics results.

M_NUMBER_OF_POINTS_REPLICATED

Retrieves the number of replicated points found during the distance-to-nearest-neighbor, surface variation, aspect ratio, and number-of-valid-neighbors statistics calculations. Replicated points are distinct points with the same XYZ-coordinates. Note that replicated points are automatically ignored when calculating distance-to-nearest-neighbor statistics; however, replicated points can have a significant effect on surface variation, aspect ratio, and number-of-valid-neighbor results. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR, M_SURFACE_VARIATION, M_NEIGHBORHOOD_ASPECT_RATIO, or M_NUMBER_OF_VALID_NEIGHBORS control types.

M_NUMBER_OF_POINTS_TOTAL

Retrieves the total number of points. This result type is available for centroid, moments, number-of-points, or PCA statistics results.

M_NUMBER_OF_POINTS_VALID

Retrieves the number of valid points. Valid points are those with non-zero confidence. This result type is available for centroid, moments, number-of-points, or PCA statistics results.

M_NUMBER_OF_VALID_NEIGHBORS_AVERAGE

Retrieves the average number of valid neighbors, across all points. Valid neighbors are those with non-zero confidence. This result is available only when you have enabled the M3dimControl M_NUMBER_OF_VALID_NEIGHBORS and M_CALCULATE_AVERAGE control types.

M_NUMBER_OF_VALID_NEIGHBORS_MAX

Retrieves the maximum number of valid neighbors, across all points. Valid neighbors are those with non-zero confidence. This result is available only when you have enabled the M3dimControl M_NUMBER_OF_VALID_NEIGHBORS and M_CALCULATE_MAX control types.

M_NUMBER_OF_VALID_NEIGHBORS_MEDIAN

Retrieves the median number of valid neighbors, across all points. Valid neighbors are those with non-zero confidence. This result is available only when you have enabled the M3dimControl M_NUMBER_OF_VALID_NEIGHBORS and M_CALCULATE_MEDIAN control types.

M_NUMBER_OF_VALID_NEIGHBORS_MIN

Retrieves the minimum number of valid neighbors, across all points. Valid neighbors are those with non-zero confidence. This result is available only when you have enabled the M3dimControl M_NUMBER_OF_VALID_NEIGHBORS and M_CALCULATE_MIN control types.

M_NUMBER_OF_VALID_NEIGHBORS_ROBUST_STDEV

Retrieves the robust standard deviation of each point's number of valid neighbors. Valid neighbors are those with non-zero confidence. M_NUMBER_OF_VALID_NEIGHBORS_ROBUST_STDEV is computed using the median absolute deviation (MAD) and a scale factor of 1.4826. This result is available only when you have enabled the M3dimControl M_NUMBER_OF_VALID_NEIGHBORS and M_CALCULATE_ROBUST_STDEV control types.

M_NUMBER_OF_VALID_NEIGHBORS_STDEV

Retrieves the standard deviation of each point's number of valid neighbors. Valid neighbors are those with non-zero confidence. This result is available only when you have enabled the M3dimControl M_NUMBER_OF_VALID_NEIGHBORS and M_CALCULATE_STDEV control types.

M_PCA_MODE

Retrieves whether the results for principal component analysis (PCA) or moments statistics were measured relative to the object's centroid (M_CENTRAL, default) or the origin (M_ORDINARY). This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

ValueDescription
(see M_PCA_MODE)

M_PRINCIPAL_AXIS_1_X

Retrieves the X-component of the normalized vector along the first principal axis, which is the axis with the largest eigenvalue. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_1_Y

Retrieves the Y-component of the normalized vector along the first principal axis, which is the axis with the largest eigenvalue. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_1_Z

Retrieves the Z-component of the normalized vector along the first principal axis, which is the axis with the largest eigenvalue. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_2_X

Retrieves the X-component of the normalized vector along the second principal axis, which is the axis with the second largest eigenvalue. The second principal axis is perpendicular to the first principal axis. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_2_Y

Retrieves the Y-component of the normalized vector along the second principal axis, which is the axis with the second largest eigenvalue. The second principal axis is perpendicular to the first principal axis. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_2_Z

Retrieves the Z-component of the normalized vector along the second principal axis, which is the axis with the second largest eigenvalue. The second principal axis is perpendicular to the first principal axis. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_3_X

Retrieves the X-component of the normalized vector along the third principal axis, which is the axis perpendicular to the first and second principal axes. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_3_Y

Retrieves the Y-component of the normalized vector along the third principal axis, which is the axis perpendicular to the first and second principal axes. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_PRINCIPAL_AXIS_3_Z

Retrieves the Z-component of the normalized vector along the third principal axis, which is the axis perpendicular to the first and second principal axes. This result type is available for moments or PCA statistics results; moments results must be of order 2 or greater.

M_SEMI_ORIENTED_BOX_ANGLE

Retrieves the angle of the semi-oriented bounding box's rotation around the axis specified using M3dimControl with M_BOX_SEMI_ORIENTED_ROTATION_AXIS, respecting the right-hand rule. This result type is available for bounding box statistics results.

M_SIZE_X

Retrieves the length along X of the 3D scene, in world units. This result type is available for bounding box statistics results.

M_SIZE_Y

Retrieves the length along Y of the 3D scene, in world units. This result type is available for bounding box statistics results.

M_SIZE_Z

Retrieves the length along Z of the 3D scene, in world units. This result type is available for bounding box statistics results.

M_STANDARD_DEVIATION_X

Retrieves the standard deviation in X. This result type is available for moments statistics results of order 2 or greater.

M_STANDARD_DEVIATION_Y

Retrieves the standard deviation in Y. This result type is available for moments statistics results of order 2 or greater.

M_STANDARD_DEVIATION_Z

Retrieves the standard deviation in Z. This result type is available for moments statistics results of order 2 or greater.

M_STATUS_NEIGHBOR_STATS

Retrieves whether replicated points were found while calculating neighborhood statistics, as such these statistics might be skewed. Replicated points are distinct points with the same XYZ-coordinates. Note that replicated points are automatically ignored when calculating distance-to-nearest-neighbor statistics; however, replicated points can have a significant effect on surface variation, aspect ratio, and number-of-valid-neighbors results. If you have enabled the M_SURFACE_VARIATION, M_NEIGHBORHOOD_ASPECT_RATIO, or M_NUMBER_OF_VALID_NEIGHBORS control type and replicated points were found, you can use M3dimFix with M_UNREPLICATED_POINTS to remove the replicated points, and then recalculate the statistics. You can use M_NUMBER_OF_POINTS_REPLICATED to check the number of replicated points that were found. This result is available only when you have enabled the M3dimControl M_DISTANCE_TO_NEAREST_NEIGHBOR, M_SURFACE_VARIATION, M_NEIGHBORHOOD_ASPECT_RATIO, or M_NUMBER_OF_VALID_NEIGHBORS control types.

ValueDescription
M_REPLICATED_POINTSSpecifies that replicated points were found; the calculated statistics might be skewed.
M_SUCCESSSpecifies that no replicated points were found.

M_SURFACE_AREA

Retrieves the surface area of the mesh. This result is available only when you have enabled the M3dimControl M_SURFACE_AREA control type.

M_SURFACE_VARIATION_AVERAGE

Retrieves the average distance to the local plane, across all points. This is the average of each point's calculated distance to its local plane, not an average of neighborhood point distances to a single plane. This result is available only when you have enabled the M3dimControl M_SURFACE_VARIATION and M_CALCULATE_AVERAGE control types.

M_SURFACE_VARIATION_MAX

Retrieves the maximum distance to the local plane, across all points. This result is available only when you have enabled the M3dimControl M_SURFACE_VARIATION and M_CALCULATE_MAX control types.

M_SURFACE_VARIATION_MEDIAN

Retrieves the median distance to the local plane, across all points. This result is available only when you have enabled the M3dimControl M_SURFACE_VARIATION and M_CALCULATE_MEDIAN control types.

M_SURFACE_VARIATION_MIN

Retrieves the minimum distance to the local plane, across all points. This result is available only when you have enabled the M3dimControl M_SURFACE_VARIATION and M_CALCULATE_MIN control types.

M_SURFACE_VARIATION_ROBUST_STDEV

Retrieves the robust standard deviation of point distances to their local plane. For each point, Aurora Imaging Library fits a local plane to neighboring points, measures the perpendicular distance of the point to the plane, and incorporates the distance into the robust standard deviation calculation. M_SURFACE_VARIATION_ROBUST_STDEV is computed using the median absolute deviation (MAD) and a scale factor of 1.4826. This result is available only when you have enabled the M3dimControl M_SURFACE_VARIATION and M_CALCULATE_ROBUST_STDEV control types.

M_SURFACE_VARIATION_STDEV

Retrieves the standard deviation of point distances to their local plane. For each point, Aurora Imaging Library fits a local plane to neighboring points, measures the perpendicular distance of the point to the plane, and incorporates the distance into the standard deviation calculation. This result is available only when you have enabled the M3dimControl M_SURFACE_VARIATION and M_CALCULATE_STDEV control types.

Combination Constants — For determining whether results are available

Optional.

Usage: You can add one of the following values to the above-mentioned values to determine whether a result is available.

M_AVAILABLE

Retrieves whether the requested result type is available for retrieval.

ValueDescription
M_FALSESpecifies that the requested result type is not available.
M_TRUESpecifies that the requested result type is available.

Combination Constants — For specifying the data type

Optional.

Usage: You can add one of the following values to the above-mentioned values to cast the requested information to the required data type.

M_TYPE_AIL_DOUBLE

Casts the requested information to an AIL_DOUBLE.

M_TYPE_AIL_FLOAT

Casts the requested information to an AIL_FLOAT.

M_TYPE_AIL_INT

Casts the requested information to an AIL_INT.

M_TYPE_AIL_INT32

Casts the requested information to an AIL_INT32.

M_TYPE_AIL_INT64

Casts the requested information to an AIL_INT64.

Return Value

Type: AIL_DOUBLE

The returned value is the requested information, cast to an AIL_DOUBLE. If the requested information does not fit into an AIL_DOUBLE, this function will return M_NULL or truncate the information.

This result type is available for bounding box statistics results. The bounding box is an axis-aligned or semi-oriented box that contains all or most of the points in the 3D scene, or it encloses a 3D geometry object.

For each point, Aurora Imaging Library fits a local plane to neighboring points and measures the perpendicular distance of the point to the plane.

For each point, Aurora Imaging Library fits a local plane to neighboring points and determines the plane's aspect ratio.

Copyright © 2026 Zebra Technologies.