Skip to main content

M3dgeoLine

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

Define an arbitrary 3D line geometry object.

Syntax

void M3dgeoLine(
AIL_ID Geometry3dgeoId, //out
AIL_INT64 CreationMode, //in
AIL_DOUBLE XPos1, //in
AIL_DOUBLE YPos1, //in
AIL_DOUBLE ZPos1, //in
AIL_DOUBLE XPos2OrVector, //in
AIL_DOUBLE YPos2OrVector, //in
AIL_DOUBLE ZPos2OrVector, //in
AIL_DOUBLE Length, //in
AIL_INT64 ControlFlag //in
)

Description

This function defines an arbitrary 3D line geometry object. You can translate, rotate, scale, or transform the resulting line, using the 3D image processing module.

You can use the resulting line to, for example, perform an arithmetic operation on a depth map using the 3D image processing module, or calculate its distance from each point in a point cloud using the 3D metrology module.

If you want to define a line geometry object from results obtained in a different module, you can use the copy function of that module.

All coordinates are expressed in world units in the working coordinate system.

Note: Note that if Geometry3dgeoId specifies a previously-defined line, you can leave some of its attributes unchanged, even if that attribute was set using a different creation mode or was modified using the 3D image processing module. To do so, set the corresponding parameter to M_UNCHANGED.

Parameters

Geometry3dgeoId (out, AIL_ID)

Specifies the identifier of the 3D geometry object, previously allocated on the required system using M3dgeoAlloc with M_GEOMETRY.

CreationMode (in, AIL_INT64)

Specifies how the line is defined.

XPos1 (in, AIL_DOUBLE)

Specifies the X-coordinate of the first point used to define the line.

YPos1 (in, AIL_DOUBLE)

Specifies the Y-coordinate of the first point used to define the line.

ZPos1 (in, AIL_DOUBLE)

Specifies the Z-coordinate of the first point used to define the line.

XPos2OrVector (in, AIL_DOUBLE)

Specifies the X-coordinate of the second point used to define the line, or the X-component of the vector defining the line's direction and length (if Length is M_DEFAULT).

YPos2OrVector (in, AIL_DOUBLE)

Specifies the Y-coordinate of the second point used to define the line, or the Y-component of the vector defining the line's direction and length (if Length is M_DEFAULT).

ZPos2OrVector (in, AIL_DOUBLE)

Specifies the Z-coordinate of the second point used to define the line, or the Z-component of the vector defining the line's direction and length (if Length is M_DEFAULT).

Length (in, AIL_DOUBLE)

Specifies to override the default line length.

For specifying to override the default line length

ValueDescription
M_DEFAULTSpecifies the default length defined by the creation mode.
M_INFINITESpecifies an infinite line.
M_UNCHANGEDSpecifies to use the previously-defined value.
Value >= 0.0Specifies to override the line's length with a specific value.

ControlFlag (in, AIL_INT64)

Reserved for future expansion and must be set to M_DEFAULT.

Parameter Associations

For specifying the line


M_POINT_AND_VECTOR

Defines the line using a point on the line and a nonzero vector defining the line's direction. By default, the length of the line is finite and is set to the vector's magnitude. The point is at the start of the line. You can determine the coordinates of the line's end point by adding the given vector's X-, Y-, and Z-components to the first point's respective coordinates. You can also use M3dgeoInquire with M_END_POINT_.... > Note: Note that if you set one of the vector's components to M_UNCHANGED, you must also set the other two components to M_UNCHANGED.

ValueDescription
M_UNCHANGEDSpecifies to use the previously-defined value.
ValueSpecifies the X-coordinate of the first point on the line.
(see M_POINT_AND_VECTOR)
(see M_POINT_AND_VECTOR)
M_UNCHANGEDSpecifies to use the previously-defined value.
ValueSpecifies the X-component of the vector defining the line's direction.
(see M_POINT_AND_VECTOR)
(see M_POINT_AND_VECTOR)

M_TWO_POINTS

Defines the line using any two non-identical points. By default, the length of the line is finite and is set to the distance between the two specified points. The line starts at the first point, and ends at the second point.

ValueDescription
M_UNCHANGEDSpecifies to use the previously-defined value.
ValueSpecifies the X-coordinate of the first point on the line.
(see M_TWO_POINTS)
(see M_TWO_POINTS)
Copyright © 2026 Zebra Technologies.