M3ddispSelect
| Board | Supported |
|---|---|
| Host System | Yes |
| V4L2 | Yes |
| Clarity UHD | Yes |
| Concord PoE | No |
| GenTL | Yes |
| GevIQ | Yes |
| GigE Vision | Yes |
| Indio | No |
| Iris GTX | Yes |
| Radient eV-CL | Yes |
| Rapixo CL | Yes |
| Rapixo CoF | Yes |
| Rapixo CXP | Yes |
| USB3 Vision | Yes |
Add a point cloud graphic, generated from a point cloud container or depth map image buffer/container, or add a graphics list to the specified 3D display. The function can also remove them from the display. Furthermore, the function can open or close the window associated with the 3D display.
Syntax
AIL_INT64 M3ddispSelect(
AIL_ID Disp3dId, //out
AIL_ID AilObjectId, //in
AIL_INT64 Option, //in
AIL_INT64 ControlFlag //in
)
Description
This function can add a point cloud graphic, generated from a point cloud container or depth map image buffer/container to the 3D display's internal graphics list, or can add a 3D graphics list to the specified Aurora Imaging Library 3D display. This function also optionally opens or closes a window to show the 3D display, or removes a specified point cloud graphic or graphics list previously added to the 3D display.
The specified container or image buffer is linked to the point cloud graphic, which is added to the 3D display's internal 3D graphics list.
Note: Any subsequent changes made to the image buffer or components of the container will be reflected in the 3D display. The point cloud container or depth map image buffer/container must be allocated for display (
M_DISP); otherwise, no point cloud graphic will be shown. You can determine whether a container is currently 3D-displayable usingMbufInquireContainerwithM_3D_DISPLAYABLE.
By default, this function removes any point cloud graphics already selected to the 3D display. To show multiple point cloud graphics in the 3D display simultaneously, you can either specify theM_ADDoption, or use M3dgraAdd. To remove only a single point cloud graphic from the 3D display, specify theM_REMOVEoption, or use M3dgraRemove. Note that you can use M3dgraAdd with M_NO_LINK to display an unlinked point cloud graphic; in this case, the 3D display is not updated dynamically.
If you want to annotate the 3D display, inquire either the identifier of its internal 3D graphics list or the identifier of a 3D graphics list previously added to the display, using M3ddispInquire with M_3D_GRAPHIC_LIST_ID. Then, add graphic objects to the 3D graphics list using the functions in the M3dgra... module.
Note: Unlike most other functions that modify an Aurora Imaging Library object, you can call functions in this module concurrently from multiple threads on the same Aurora Imaging Library 3D display (
Disp3dId) without using anM_MUTEXobject, as long as all the other parameters of the concurrent calls do not also share data. Point cloud containers and depth map image buffers/containers are not thread-safe and must only be accessed by one thread at a time. You must ensure the source point cloud container or depth map image buffer/container is not modified from another thread while the add is being performed. Note that this does not impact subsequent modifications to the point cloud container or depth map image buffer/container as long as they are modified from one thread at a time.
Parameters
Disp3dId (out, AIL_ID)
Specifies the identifier of the 3D display, previously allocated using M3ddispAlloc.
AilObjectId (in, AIL_ID)
Specifies the Aurora Imaging Library identifier of the 3D-displayable container, fully corrected depth map image buffer, or graphics list to add to the display.
Option (in, AIL_INT64)
Specifies the action to perform on the specified 3D display.
ControlFlag (in, AIL_INT64)
Reserved for future expansion and must be set to M_DEFAULT.
Parameter Associations
For specifying the container, image buffer, or 3D graphics list and what operation to perform
M_NULL
Specifies no container, image buffer, or 3D graphics list.
| Value | Description |
|---|---|
M_DEFAULT | |
M_CLOSE | Specifies to close the window. > Note: This setting is not available for M_WEB displays. |
M_OPEN | Specifies to open the window. > Note: This setting is not available for M_WEB displays. |
M_REMOVE | Specifies to remove all point cloud graphics from the 3D display's internal 3D graphics list. |
M_SELECT (default) | Specifies to remove all point cloud graphics from the 3D display's internal 3D graphics list and close the window. |
3D-displayable container identifier
Specifies the Aurora Imaging Library identifier of the 3D-displayable point cloud or depth map container, for adding or removing its linked point cloud graphic to/from the specified 3D display's internal 3D graphics list. You can inquire whether a container is 3D-displayable using MbufInquireContainer with M_3D_DISPLAYABLE. > Note: If the container is only 3D-displayable with compensation, Aurora Imaging Library will perform an internal conversion each time the container is modified. For maximum performance, you should convert the container to a format that is natively 3D-displayable (using MbufConvert3dwith a destination container that has the attribute M_DISP). M3dimFix with M_RANGE_FINITE+M_NORMALS_FINITE+M_MESH_VALID_POINTS is internally performed for point cloud graphics. Just like automatic compensation, this does not modify the source point cloud.
| Value | Description |
|---|---|
M_DEFAULT | |
M_ADD | Specifies to add the point cloud graphic, linked to the specified container or depth map image buffer, to the 3D display's internal 3D graphics list. If the specified container or image buffer is already linked to a point cloud graphic in the 3D graphics list, no error is generated. The function will return the label of the existing point cloud graphic instead. If, however, the existing point cloud graphic is unlinked (that is, it was added using M3dgraAdd with M_NO_LINK), using this option adds a duplicate point cloud to the 3D graphics list. This does not affect the open/close status of the display. Note that to add multiple linked point cloud graphics, useM3dgraAdd. |
M_REMOVE | Specifies to remove, from the display's internal graphics list, all point cloud graphic labels corresponding to the specified container. An error is generated if the specified container is not linked to a point cloud graphic in the internal 3D graphics list. You can remove unlinked point cloud graphics from the display's internal graphics list using M3dgraRemove. |
M_SELECT (default) | Specifies to add the specified container's point cloud graphic to the 3D display's internal 3D graphics list, remove all other point cloud graphics from the internal 3D graphics list, and open the window. Note, an error will occur if a user-added graphics list has already been added to the display. |
3D graphics list identifier
Specifies the Aurora Imaging Library identifier of the 3D graphics list to add to or remove from the specified 3D display.
| Value | Description |
|---|---|
M_DEFAULT | |
M_ADD | Specifies to add the 3D graphics list to the display. This does not affect the open/closed status of the display. |
M_REMOVE | Specifies to remove the 3D graphics list from the display. Note, the default graphics list cannot be removed. If the specified 3D graphics list is not associated with the display, an error will occur. |
M_SELECT (default) | Specifies to remove all 3D graphics lists (excluding the default graphics list) and add the specified graphics list to the display. Note, if the default graphics list is not empty, an error will occur. |
Empty container identifier
Specifies the Aurora Imaging Library identifier of an empty container with the M_DISP attribute. This is useful for specifying a container into which you will subsequently grab 3D data.
| Value | Description |
|---|---|
M_DEFAULT | |
M_ADD | Specifies to add the point cloud graphic, linked to the specified container or depth map image buffer, to the 3D display's internal 3D graphics list. If the specified container is already linked to a point cloud graphic in the 3D graphics list, no error is generated. The function will return the label of the existing point cloud graphic instead. If, however, the existing point cloud graphic is unlinked (that is, it was added using M3dgraAdd with M_NO_LINK), using this option adds a duplicate point cloud to the 3D graphics list. Since the specified container doesn't initially contain a point cloud or depth map, a point cloud graphic without any points is added. |
M_REMOVE | Specifies to remove the point cloud graphic, linked to the specified container, from the 3D display's internal 3D graphics list. An error is generated if the specified container is not linked to a point cloud graphic in the internal 3D graphics list. |
M_SELECT (default) | Specifies to add the specified container's point cloud graphic to the 3D display's internal 3D graphics list, remove all other point cloud graphics from the internal 3D graphics list, and open the window. Since the specified container doesn't initially contain a point cloud or depth map, a point cloud graphic without any points is added. |
Image buffer identifier
Specifies the Aurora Imaging Library identifier of an image buffer, with the M_DISPattribute, for adding or removing its linked point cloud graphic to/from the specified 3D display's internal 3D graphics list. This image buffer will be displayed as a point cloud. The image buffer must be a fully-corrected depth map (McalInquire with M_DEPTH_MAP returns M_TRUE).
| Value | Description |
|---|---|
M_DEFAULT | |
M_ADD | Specifies to add the point cloud graphic, linked to the specified depth map image buffer, to the 3D display's internal 3D graphics list. If the specified image buffer is already linked to a point cloud graphic in the 3D graphics list, no error is generated. The function will return the label of the existing point cloud graphic instead. If, however, the existing point cloud graphic is unlinked (that is, it was added using M3dgraAdd with M_NO_LINK), using this option adds a duplicate point cloud to the 3D graphics list. |
M_REMOVE | Specifies to remove the point cloud graphic, linked to the specified depth map image buffer, from the 3D display's internal 3D graphics list. An error is generated if the specified image buffer is not linked to a point cloud graphic in the internal 3D graphics list. |
M_SELECT (default) | Specifies to add the specified image buffer's point cloud graphic to the 3D display's internal 3D graphics list, remove all other point cloud graphics from the internal 3D graphics list, and open the window. |
Return Value
Type: AIL_INT64
Returns the label of the point cloud graphic added to the internal 3D graphics list of the 3D display.