Project Point Cloud
Types
Functions
Detailed Description
- group a3d_ProjectPointCloud
ProjectPointCloud functions for model file.
See also
- Version
6.1
Function Documentation
-
A3DStatus A3DProjectPointCloud(unsigned int uRiBrepModelSize, A3DRiBrepModel **pRiBrepModel, A3DUns32 uPointCloudSize, A3DVector3dData *pPointCloudToProject, A3DBool bUseExactComputation, A3DUns32 uNbThreads, A3DProjectedPointCloudData **ppProjectedPointCloud)
Function to project Point Cloud on BrepModel.
- Version
6.1
- Parameters:
uRiBrepModelSize – [in] Number of BrepModels in pRiBrepModel.
pRiBrepModel – [in] Array of Brep Models.
uPointCloudSize – [in] Number of points in pPointCloudToProject.
pPointCloudToProject – [in] Point cloud to project. This point cloud must be in the same coordinate system as the BrepData structures stored in BrepModel.
bUseExactComputation – [in] Flag to use exact topology. When this flag is false, the algorithm drops the point cloud on the faceted geometry, otherwise, the exact topology is used.
uNbThreads – [in] Number of threads wanted. 0 means non multi-thread. Please avoid setting a number of threads larger than the number of CPU cores.
ppProjectedPointCloud – [out] Point cloud projected. ppProjectedPointCloud is automatically allocated by A3DProjectPointCloud. It must be freed with the custom free memory callback.
- Return values:
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
A3D_BREPDATA_INCONSISTENT_DATA – if bUseExactComputation is set and if is missing A3DTopoBrepData
A3D_TOPO_GEOMETRY_MISSING – if bUseExactComputation is set and if is missing UV curves
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
- Returns:
A3D_SUCCESS
on success, or an error code on failure
-
A3DStatus A3DProjectPointCloudManagerCreateFromRI(A3DProjectPointCloudManagerDataFromRI *pData, A3DProjectPointCloudManager **pManager)
Create a Point Cloud Manager from a set of A3DRiRepresentationItem with matrix placement.
The created manager holds memory that must be explicitely released using A3DProjectPointCloudManagerDelete.
- Version
8.1
- Parameters:
pData – [in] An instance of A3DProjectPointCloudManagerDataFromRI
pManager – [out] A location to a new instance of A3DProjectPointCloudManager.
- Return values:
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
A3D_BREPDATA_INCONSISTENT_DATA – if bUseExactComputation is set and if is missing A3DTopoBrepData
A3D_TOPO_GEOMETRY_MISSING – if bUseExactComputation is set and if is missing UV curves
- Returns:
A3D_SUCCESS
on success, or an error code on failure
-
A3DStatus A3DProjectPointCloudManagerCreateFromModelFile(A3DAsmModelFile *pModelFile, A3DProjectPointCloudManager **pManager)
Create a Point Cloud Manager from a A3DAsmModelFile.
The created manager holds memory that must be explicitely released using A3DProjectPointCloudManagerDelete.
- Version
8.1
- Parameters:
pModelFile – [in] The model file object to create manager from.
pManager – [out] A location to a new instance of A3DProjectPointCloudManager.
- Return values:
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
A3D_BREPDATA_INCONSISTENT_DATA – if bUseExactComputation is set and if is missing A3DTopoBrepData
A3D_TOPO_GEOMETRY_MISSING – if bUseExactComputation is set and if is missing UV curves
- Returns:
A3D_SUCCESS
on success, or an error code on failure
-
A3DStatus A3DProjectPointCloudManagerDelete(A3DProjectPointCloudManager *pManager)
Deletes an A3DProjectPointCloudManager instance.
The provided pManager object must have been created earlier by either A3DProjectPointCloudManagerCreateFromModelFile or A3DProjectPointCloudManagerCreateFromRI.
- Version
8.1
- Parameters:
pManager – [in] The manager instance.
- Return values:
A3D_SUCCESS – In case of success.
A3D_INITIALIZE_NOT_CALLED – If the library is not initialized.
A3D_INVALID_ENTITY_TYPE – If pManager is not an instance of A3DProjectPointCloudManager.
- Returns:
A3D_SUCCESS
on success, or an error code on failure
-
A3DStatus A3DProjectPointCloud3(A3DProjectPointCloudManager *pManager, A3DUns32 uPointCloudSize, A3DVector3dData const *pPointCloudToProject, A3DProjectPointCloudOptionsData const *pOptions, A3DProjectedPointCloudData **ppProjectedPointCloud)
Function to project Point Cloud on BrepModel with a A3DProjectPointCloudManager.
- Version
22.2
Memory Management
In case of success,
ppProjectedPointCloud
contains heap allocated memory you are responsible for. To free the memory onppProjectedPointCloud
, callA3DProjectPointCloud3
by settingpManager
to 0. In this case, all other parameters are ignored:A3DProjectPointCloud3(0, 0, 0, 0, ppProjectedPointCloud);
Warning
If A3DProjectPointCloudManagerCreateFromRI is used to create pManager, and A3DProjectPointCloudManagerDataFromRI::m_bUseExactComputation is set to false, you can’t set bUseExactComputation to true. In this case, an A3D_INVALID_DATA error is returned.
- Parameters:
pManager – [in] A3DProjectPointCloudManager created by A3DProjectPointCloudManagerCreateFromModelFile function.
uPointCloudSize – [in] Number of points in pPointCloudToProject.
pPointCloudToProject – [in] Point cloud to project. May also contain normals directions (ordered as follow: Point1, Normal1, Point 2, Normal2, etc…) depending on the A3DProjectPointCloudOptionsData::m_bPreferFaceTowardScan option. This point cloud must be in the same coordinate system as the BrepData structures stored in BrepModel.
pOption – [in] Structure containing option (must be set). see A3DProjectPointCloudOption
ppProjectedPointCloud – [out] Point cloud projected.
- Return values:
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA –
A3D_ERROR –
- Returns:
A3D_SUCCESS
on success, or an error code on failure