Skip to main content

M3dgeoCylinder

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 a 3D cylinder geometry object.

Syntax

void M3dgeoCylinder(
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 Radius, //in
AIL_DOUBLE Length, //in
AIL_INT64 ControlFlag //in
)

Description

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

You can use the resulting cylinder to, for example, crop a point cloud or 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 cylinder 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 cylinder, 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 cylinder is defined.

XPos1 (in, AIL_DOUBLE)

Specifies the X-coordinate of a point on the cylinder's central axis.

YPos1 (in, AIL_DOUBLE)

Specifies the Y-coordinate of a point on the cylinder's central axis.

ZPos1 (in, AIL_DOUBLE)

Specifies the Z-coordinate of a point on the cylinder's central axis.

XPos2OrVector (in, AIL_DOUBLE)

Specifies the X-coordinate of the cylinder's second defining point, or the X-component of the cylinder's central axis vector.

YPos2OrVector (in, AIL_DOUBLE)

Specifies the Y-coordinate of the cylinder's second defining point, or the Y-component of the cylinder's central axis vector.

ZPos2OrVector (in, AIL_DOUBLE)

Specifies the Z-coordinate of the cylinder's second defining point, or the Z-component of the cylinder's central axis vector.

Radius (in, AIL_DOUBLE)

Specifies the cylinder's radius.

For specifying the cylinder's radius

ValueDescription
M_UNCHANGEDSpecifies to use the previously-defined value.
Value > 0.0Specifies the cylinder's radius.

Length (in, AIL_DOUBLE)

Specifies to override the default cylinder length.

For specifying to override the default cylinder length

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

ControlFlag (in, AIL_INT64)

Specifies whether the resulting cylinder has bases. Cylinders with Length set to M_INFINITE cannot have bases.

For specifying if the cylinder has bases

ValueDescription
M_DEFAULTSpecifies the default value.

For a finite cylinder, this value is the same as M_WITH_BASES. For an infinite cylinder, this value is the same as M_WITHOUT_BASES. | | M_UNCHANGED | Specifies to use the previously-defined value. | | M_WITH_BASES | Specifies that the resulting cylinder has a circular base at each end. This value is only supported for finite cylinders. | | M_WITHOUT_BASES | Specifies that the resulting cylinder does not have bases. |

Parameter Associations

For specifying the cylinder


M_POINT_AND_VECTOR

Defines the cylinder using a point on the cylinder's central axis and a nonzero vector defining the central axis direction. By default, the length of the cylinder is finite and is set to the vector's magnitude. The point is at the center of the cylinder's first circular base. > 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 cylinder's central axis.
(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 central axis direction.
(see M_POINT_AND_VECTOR)
(see M_POINT_AND_VECTOR)

M_TWO_POINTS

Defines the cylinder using any two non-identical points on the cylinder's central axis. By default, the length of the cylinder is finite and is set to the distance between the two specified points. The first specified point is at the center of the cylinder's first circular base and the second specified point is at the center of the cylinder's second circular base.

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