Skip to main content

M3dimNormals

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

Compute a point cloud's unit normal vectors.

Syntax

void M3dimNormals(
AIL_ID NormalsContext3dimId, //in
AIL_ID SrcContainerBufId, //in
AIL_ID DstContainerBufId, //out
AIL_INT64 ControlFlag //in
)

Description

This function computes the unit normal vector for each point in a point cloud, and stores the values in an M_COMPONENT_NORMALS_AIL component, which is added to the destination container. Any previously existing M_COMPONENT_NORMALS_AIL component in the destination container is overwritten.

All other source components are copied to the destination container, and replace any previously existing components.

For some functions that use normal values, how those values were calculated can affect results. For example, when using M3dimFilter with a bilateral smoothing filter (M_SMOOTH_BILATERAL), the filter operation works best with normals that were calculated using the M_MESH or M_TREE neighbor search mode (M3dimControl with M_NEIGHBOR_SEARCH_MODE). However, normals created using the M_ORGANIZED mode can give faster filtering results.

Parameters

NormalsContext3dimId (in, AIL_ID)

Specifies a normals 3D image processing context.

For specifying the normals 3D image processing context identifier

ValueDescription
M_NORMALS_CONTEXT_MESHSpecifies a predefined normals 3D image processing context with all normals context control types (M3dimControl) set to their default, except M_NEIGHBOR_SEARCH_MODE which is set to M_MESH. Use this predefined context to determine the neighbors of a point using the point cloud's M_COMPONENT_MESH_AIL component.
M_NORMALS_CONTEXT_ORGANIZEDSpecifies a predefined normals 3D image processing context with all normals context control types (M3dimControl) set to their default, except M_NEIGHBOR_SEARCH_MODE which is set to M_ORGANIZED. Use this predefined context to determine the neighbors of a point using the point cloud's organizational structure.
M_NORMALS_CONTEXT_TREESpecifies a predefined normals 3D image processing context with all normals context control types (M3dimControl) set to their default, including M_NEIGHBOR_SEARCH_MODE which is set to M_TREE. Use this predefined context to determine the neighbors of a point using a KD tree search mode.
Normals 3D image processing context identifierSpecifies the identifier of a normals 3D image processing context, previously allocated using M3dimAlloc with M_NORMALS_CONTEXT.

Note: If a previously allocated context is specified, the function applies the normals control settings specified using M3dimControl. |

SrcContainerBufId (in, AIL_ID)

Specifies the identifier of the source container containing a 3D-processable point cloud. The container must be 3D-processable (that is, if you call MbufInquireContainer with M_3D_PROCESSABLE, the function returns M_PROCESSABLE).

DstContainerBufId (out, AIL_ID)

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

ControlFlag (in, AIL_INT64)

Reserved for future expansion and must be set to M_DEFAULT.

Copyright © 2026 Zebra Technologies.