Skip to main content

M3dregInquire

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

Inquire information about a pairwise 3D registration context or a pairwise 3D registration result buffer.

Syntax

AIL_INT64 M3dregInquire(
AIL_ID ContextOrResult3dregId, //in
AIL_INT64 Index, //in
AIL_INT64 InquireType, //in
void * UserVarPtr //out
)

Description

This function inquires information about a pairwise 3D registration context or a pairwise 3D registration result buffer.

In addition, this function can inquire the settings for stop conditions for the registration operation executed by M3dregCalculate. To inquire whether a stop condition was met, call M3dregGetResult with M_STATUS.

Note that for a 3D pairwise registration result buffer, this function only retrieves information about the buffer's settings (set using M3dregAllocResult or M3dregControl). To retrieve results from the registration result buffer, use M3dregGetResult.

Parameters

ContextOrResult3dregId (in, AIL_ID)

Specifies the identifier of the 3D pairwise registration context or a pairwise 3D registration result buffer to inquire. The pairwise 3D registration context is allocated with M3dregAlloc, and the pairwise 3D registration result buffer is allocated with M3dregAllocResult.

Index (in, AIL_INT64)

Specifies to inquire a pairwise 3D registration context, an individual registration element (or all registration elements), or a pairwise 3D registration result buffer. Set this parameter to one of the following values:

For specifying the registration element

ValueDescription
M_DEFAULTSpecifies the default behavior.

If ContextOrResult3dregId specifies a pairwise 3D registration context, then M_DEFAULT is the same as M_CONTEXT.

If ContextOrResult3dregId specifies a pairwise 3D registration result buffer, then M_DEFAULT is the same as M_GENERAL. | | M_ALL | Specifies to inquire all registration elements of a pairwise 3D registration context or all registration result elements of a pairwise 3D registration result buffer. | | M_CONTEXT | Specifies to inquire a pairwise 3D registration context. | | M_GENERAL | Specifies to inquire a pairwise 3D registration result buffer. | | 0 <= Value < M3dregInquire(M_NUMBER_OF_REGISTRATION_ELEMENTS) | Specifies the index of the registration element or registration result element to inquire. |

InquireType (in, AIL_INT64)

Specifies the type of setting about which to inquire.

UserVarPtr *(out, void)

Specifies the address in which to write the requested information. Since the M3dregInquire function also returns the requested information, you can set this parameter to M_NULL.

Parameter Associations

For inquiring a pairwise 3D registration context or a pairwise 3D registration result buffer

For the following inquire types, the ContextOrResult3dregId parameter must specify a 3D registration context or a 3D registration result buffer. The Indexparameter must be set to M_CONTEXT or M_GENERAL, for a 3D registration context or 3D registration result buffer respectively.


M_NUMBER_OF_REGISTRATION_ELEMENTS

Inquires the number of registration elements in the 3D registration context, or the number of registration result elements in the 3D registration result buffer.

ValueDescription
2 <= Value <= 65535 (default)Specifies the number of registration elements or registration result elements.

For inquiring a pairwise 3D registration context

For a pairwise 3D registration context, when Indexis set to M_CONTEXT, the InquireTypeparameter can be set to one of the following:


M_ERROR_MINIMIZATION_METRIC

Inquires the technique for performing the pairwise comparison during each iteration of the registration operation, and establishes how to compute the RMS error.

ValueDescription
M_POINT_TO_PLANE (default)Specifies to calculate the RMS error using the shortest distance between the point (in the reference point cloud), and the plane tangent to the other paired point.
M_POINT_TO_POINTSpecifies to calculate the RMS error using the distance between the paired points.

M_MAX_ITERATIONS

Inquires a stop condition for the iterative registration operation. If the maximum number of iterations is reached, the registration operation stops. To inquire whether this stop condition was met, call M3dregGetResult with M_STATUS. > Note: Note that preregistration constitutes the first iteration.

ValueDescription
Value > 0 (default)Specifies the maximum number of iterations in the registration process.

M_PAIRS_CREATION_FROM_TARGET

Inquires whether to first find matching points in the target point cloud relative to the reference, and then vice versa. You can enable such matchings so that they are performed from the first iteration or only for specific iterations.

ValueDescription
M_AUTOSpecifies to find point pairs in both directions for specific iterations based on an internal heuristic.
M_DISABLE (default)Specifies not to find point pairs in both directions.
M_ENABLESpecifies to find point pairs in both directions.

M_PAIRS_CREATION_MAX_POINT_DISTANCE

Inquires the maximum Euclidean distance within which two points are considered paired.

ValueDescription
M_INFINITE (default)Specifies that there is no maximum distance.
Value > 0.0Specifies the maximum distance.

M_PAIRS_CREATION_PER_REFERENCE_POINT_MODE

Inquires whether to pair each point in the reference point cloud with a single point or multiple points in the target point cloud. You can also choose to allow multiple pairings for specific iterations only.

ValueDescription
M_AUTOSpecifies to allow multiple point pairings for specific iterations; the operation adjusts the number of paired points per reference point for each iteration based on an internal heuristic.
M_MULTIPLESpecifies to pair each reference point with up to 6 neighbors in the target point cloud.
M_SINGLE (default)Specifies to pair each reference point with a single point in the target point cloud.

M_PAIRS_LIMIT_PER_TARGET_POINT_MODE

Inquires whether to limit the number of point pairs to which a target point can belong.

ValueDescription
M_AUTOSpecifies to allow every target point to be part of a variable number of point pairs, based on an internal heuristic.
M_DISABLE (default)Specifies not to limit the number of point pairs to which a target point can belong.
M_SINGLESpecifies to allow every target point to be part of 1 point pair.

M_PREREGISTRATION_MODE

Inquires how to perform the preregistration step.

ValueDescription
M_CENTROIDSpecifies to apply the preregistration transformation matrix, specified using M3dregSetLocation; it then automatically registers the centroids (center of mass) of the two point clouds.
M_USER_DEFINED (default)Specifies to apply the preregistration transformation matrix in the first iteration of the registration operation.

M_RMS_ERROR_RELATIVE_THRESHOLD

Inquires the stop condition for the registration operation that tests the percentage change of the root-mean-square (RMS) error of successive iterations. The RMS error is calculated from the distance between all paired points. You can control how the distance is calculated using M_ERROR_MINIMIZATION_METRIC. If this stop condition is met, the registration is typically considered correct. > Note: Note that the specified value represents a percentage, so the default value of 0.1 represents 0.1%, not 10%.

ValueDescription
Value >= 0.0 (default)Specifies the relative RMS error threshold.

M_RMS_ERROR_THRESHOLD

Inquires the stop condition for the registration operation that tests the root-mean-square (RMS) error of successive iterations. The RMS error is calculated from the distance between all paired points. You can control how the distance is calculated using M_ERROR_MINIMIZATION_METRIC. If this stop condition is met, the registration is typically considered correct.

ValueDescription
Value >= 0.0 (default)Specifies the RMS error threshold.

M_SAVE_PAIRS_INFO

Inquires whether to save point pairs at each iteration.

ValueDescription
M_FALSE (default)Specifies not to save point pairs at each iteration.
M_TRUESpecifies to save point pairs at each iteration.

M_SUBSAMPLE

Inquires whether to subsample all point clouds before applying the registration. This subsampling is applied before any point cloud-specific subsampling is applied by M_SUBSAMPLE_REFERENCE or M_SUBSAMPLE_TARGET.

ValueDescription
M_DISABLE (default)Specifies to disable subsampling before applying the registration.
M_ENABLESpecifies to enable subsampling before applying the registration.

M_SUBSAMPLE_CONTEXT_ID

Inquires the ID of the subsampling context within the specified registration context.

ValueDescription
Subsample Context IDSpecifies the Aurora Imaging Library identifier of the subsampling context.

For inquiring the registration elements of a 3D pairwise registration context

For a 3D pairwise registration context, when Indexis set to an index value or M_ALL, the InquireTypeparameter can be set to one of the following:


M_OVERLAP

Inquires the percentage of all possible point pairings to use in a single iteration of the registration operation.

ValueDescription
0.0 < Value <= 100.0 (default)Specifies the percentage of possible paired points included in each iteration of the registration operation.

M_PAIRS_REJECTION_FACTOR

Inquires the rejection factor when calculating the distance threshold (M_PAIRS_REJECTION_MODE set to M_ROBUST_STANDARD_DEVIATION). A larger rejection factor sets a larger distance threshold.

ValueDescription
Value >= 0.0 (default)Specifies the rejection factor.

M_PAIRS_REJECTION_MODE

Inquires whether to reject point pairs that are too far apart, according to a distance threshold established from all point pair distances.

ValueDescription
M_DISABLE (default)Specifies not to use pairs rejection mode.
M_ROBUST_STANDARD_DEVIATIONSpecifies to use pairs rejection mode with a robust estimate of the variance (standard deviation) of the distance between point pairs.

M_SET_LOCATION_REFERENCE

Inquires the index of the reference registration element, as set using M3dregSetLocation when setting the rough location of a point cloud's working coordinate system.

ValueDescription
M_REGISTRATION_GLOBALSpecifies the global coordinate system.
0 <= Value < M3dregInquire(M_NUMBER_OF_REGISTRATION_ELEMENTS)Specifies the index of the reference registration element.

M_SUBSAMPLE_REFERENCE

Inquires whether to subsample the reference point cloud associated with the specified registration element before applying the registration. This subsampling is applied to the point cloud after any subsampling is applied by M_SUBSAMPLE.

ValueDescription
M_DISABLE (default)Specifies to disable subsampling for the reference point cloud before applying the registration.
M_ENABLESpecifies to enable subsampling for the reference point cloud before applying the registration.

M_SUBSAMPLE_REFERENCE_CONTEXT_ID

Inquires the ID of the subsampling context of the reference point cloud for the specified registration element.

ValueDescription
Subsample Context IDSpecifies the Aurora Imaging Library identifier of the subsampling context.

M_SUBSAMPLE_TARGET

Inquires whether to subsample the target point cloud associated with the specified registration element before applying the registration. This subsampling is applied to the point cloud after any subsampling is applied by M_SUBSAMPLE.

ValueDescription
M_DISABLE (default)Specifies to disable subsampling for the target point cloud before applying the registration.
M_ENABLESpecifies to enable subsampling for the target point cloud before applying the registration.

M_SUBSAMPLE_TARGET_CONTEXT_ID

Inquires the ID of the subsampling context of the target point cloud for the specified registration element.

ValueDescription
Subsample Context IDSpecifies the Aurora Imaging Library identifier of the subsampling context.

For inquiring the registration elements of a 3D pairwise registration result buffer

For a 3D pairwise registration result buffer, when Indexis set to an index value or M_ALL, the InquireTypeparameter can be set to one of the following:


M_ITERATION_INDEX

Inquires the index of the iteration from which to copy, get, or draw results.

ValueDescription
M_LAST_ITERATION (default)Specifies the index of the final iteration of the registration process.
0 <= Value < M3dregGetResult(M_NB_ITERATIONS)Specifies the index of the iteration from which to copy, get, or draw results.

M_PAIRS_RANK

Inquires the point pair rank when using M3dregCopyResult to create a distance, overlap, or pair index image. Note that pairings are ranked from nearest (rank 0) to farthest.

ValueDescription
0 <= Value < M3dregGetResult(M_MAX_PAIRS_RANK) (default)Specifies the rank of the pairing from which to copy results.

For inquiring a pairwise 3D registration result buffer

For a 3D pairwise registration result buffer, when Indexis set to M_GENERAL, the InquireType parameter can be set to one of the following:


M_MERGE_LOCATION

Inquires whether to transform the point clouds such that their working coordinate systems are aligned to the global coordinate system, or to transform (fixture) them such that their working coordinate systems are aligned with a specified point cloud's working coordinate system, for an M3dregMerge operation.

ValueDescription
M_REGISTRATION_GLOBAL (default)Specifies to transform the point clouds to the global coordinate system for the merging operation.
0 <= Value < M3dregInquire(M_NUMBER_OF_REGISTRATION_ELEMENTS)Specifies the index of the point cloud to which to fixture all point clouds; the point clouds will be aligned to the specified point cloud's working coordinate system.

Combination Constants — For inquiring about the default value

Optional.

Usage: You can add one of the following values to the above-mentioned values to get information about the default value of an inquire type, regardless of the current value of the inquire type.

M_DEFAULT

Inquires the default value of the specified inquire type.

M_IS_SET_TO_DEFAULT

Inquires whether the specified inquire type is set to its default value.

ValueDescription
M_FALSESpecifies that the inquire type is not set to its default value.
M_TRUESpecifies that the inquire type is set to its default value.

Combination Constants — To inquire whether an inquire type is supported

Optional.

Usage: You can add one of the following values to the above-mentioned values to determine whether an inquire type is supported.

M_HAS_DEFAULT

Inquires whether the specified inquire type has a default value.

ValueDescription
M_FALSESpecifies that the inquire type does not have a default value.
M_TRUESpecifies that the inquire type has a default value.

M_SUPPORTED

Inquires whether the specified inquire type is supported for the 3D registration context.

ValueDescription
M_FALSESpecifies that the inquire type is not supported.
M_TRUESpecifies that the inquire type is supported.

Combination Constants — To specify the data type

Optional.

Usage: You can add one of the following values to the above-mentioned values to cast the requested information to a 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_INT64

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

Copyright © 2026 Zebra Technologies.