A3DSDKAdvancedTools.h
Header file for surface entities.
- Author
Tech Soft 3D
- Version
23.0
- Date
January 2023
- Copyright (c) 2010 - 2023 by Tech Soft 3D, Inc. All rights reserved.
Content
Data Structures
A3DSewOptionsData option structure. |
|
A3DFaceUVPointInsideManager structure. |
|
A3DProjectedPointCloudData structure. |
|
A3DProjectPointCloudManagerDataFromRI sructure. |
|
A3DProjectPointCloudOptionsData structure. |
|
A3DPlanarSectionData structure. |
|
A3DCompareInputData structure that contains input data of A3DCompareFaces . |
|
A3DCompareOutputData structure that contains result data of A3DCompareFaces or A3DCompareFacesInBrepModels . |
|
A3DHLRViewPlaneData structure. |
|
A3DHLRCurveData structure. |
|
A3DHLRSectionFaceData structure. |
|
A3DHLRCurveData structure. |
|
A3DHLROptionsData structure. |
|
A3DTransfoRepresentationItemData structure. |
|
A3DCollisionGroupData structure. |
|
A3DCollisionParameterData structure. |
|
A3DCollisionResultData structure. |
Functions
Function to get a curve parametric interval. |
|
Function to evaluate a point and the derivatives of a curve at a parameter. |
|
Function to evaluate a point and the derivatives of a curve at a parameter, then the normal of this point to each of the given surfaces. |
|
Function to determine if a curve is periodic. |
|
Function to get a surface parametric domain. |
|
Function to evaluate a point and the derivatives on a surface. |
|
Function to determine if a surface is degenerated at a point. |
|
Function to determine if a surface is periodic. |
|
Function to determine if a surface is G1 discontinuous at a point. |
|
Function to get curves as analytic (line or circle) according to a certain tolerance. |
|
Function to get curves as analytic (line or circle) according to a certain tolerance. |
|
Function to get curves as analytic (line or circle) according to a certain tolerance Try to use UV curves from Edges if exist, otherwise use 3D Curves. |
|
Function to get curves as analytic (line or circle) according to a certain tolerance Try to use 3D curves from Edges if exist, otherwise use UV Curves on CoEdge. |
|
Function to get surface as analytic according to a certain tolerance. |
|
Function to get surface as analytic according to a certain tolerance. |
|
This function projects a point on a curve. |
|
This function projects a point on a surface The number of returned solutions is given by puiNbSolutions and for each one, ppdSolutionParameters and ppdSolutionDistance arrays give the 2D point in surface parametric domain and the spatial distance between pPointToProject and the solution (on the surface). |
|
This function projects a point on a curve with a guess parameter pdSolutionParameter and pdSolutionDistance give the parameter on the curve and the spatial distance between pPointToProject and the solution (on the curve). |
|
This function projects a point on a surface with a guess parameter pSolutionParameter and pdSolutionDistance give the 2D point in surface parametric domain and the spatial distance between pPointToProject and the solution (on the surface). |
|
Function to evaluate a normal on a surface. |
|
Function to sew multiple B-rep data structures. |
|
Function to sew one model file. |
|
Creates an A3DFaceUVPointInsideManager from an A3DFaceUVPointInsideManagerData structure. |
|
Deletes an A3DFaceUVPointInsideManager . |
|
This function projects a UV point on a face, and return if it’s inside or not. |
|
Function to project Point Cloud on BrepModel. |
|
Create a Point Cloud Manager from a set of A3DRiRepresentationItem with matrix placement. |
|
Create a Point Cloud Manager from a A3DAsmModelFile . |
|
Deletes an A3DProjectPointCloudManager . |
|
Function to project Point Cloud on BrepModel with a A3DProjectPointCloudManager . |
|
Function to project Point Cloud on BrepModel with a A3DProjectPointCloudManager . |
|
Function to compute plane section on BrepModel. |
|
Function to compute plane section on ModelFile. |
|
Function to compute the length of a curve (optionally restricted to an interval) |
|
Function to compare the faces of two groups of A3DRiBrepModel. |
|
Function to compare the faces of two A3DAsmModelFile . |
|
Function to compute the result of a section with several planes on a set of A3DRiRepresentationItem . |
|
Function to compute the result of a section with several planes on a A3DAsmModelFile . |
|
Function to compute Hidden Line Removal on a set of A3DRiRepresentationItem . |
|
Function to compute Hidden Line Removal on a A3DAsmModelFile . |
|
Function to compute Hidden Line Removal on a A3DAsmModelFile . |
|
Function to compute Hidden Line Removal on a A3DAsmModelFile . |
|
Populates the A3DHLRRepresentationItemData structure. |
|
This function activates an XML trace file that lists the PRC entities contained in a modelfile built during a Load session or written during an export to PRC session. |
|
Determine interferences between A3DRiRepresentationItem . |
Functions
-
A3DStatus A3DCrvGetInterval(const A3DCrvBase *pCrv, A3DIntervalData *pInterval)
Function to get a curve parametric interval.
- Return values
A3D_SUCCESS –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCrvEvaluate(const A3DCrvBase *pCrv, A3DDouble dParameter, A3DUns32 uiNbDerivatives, A3DVector3dData *pPointAndDerivatives)
Function to evaluate a point and the derivatives of a curve at a parameter.
- Derivatives are stored in the following order:
With uiNbDerivatives = 0: Point
With uiNbDerivatives = 1: Point, First Derivative
With uiNbDerivatives = 2: Point, First Derivative, Second Derivative
size = 1 if uiNbDerivatives=0
size = 2 if uiNbDerivatives=1;
size = 3 if uiNbDerivatives=2;
- Version
4.0
Warning
The number of derivatives must be less than or equal to 2.
- Return values
A3D_SUCCESS –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCrvEvaluatePointAndNormal(A3DCrvBase const *psCrv, A3DDouble dParameter, A3DUns32 uiNbSurfaces, A3DSurfBase **ppsSurfaces, A3DUns32 uiNbDerivatives, A3DVector3dData *psPointAndDerivatives, A3DVector3dData *psNormal)
Function to evaluate a point and the derivatives of a curve at a parameter, then the normal of this point to each of the given surfaces.
- Derivatives are stored in the following order:
With uiNbDerivatives = 0: Point
With uiNbDerivatives = 1: Point, First Derivative
With uiNbDerivatives = 2: Point, First Derivative, Second Derivative
size = 1 if uiNbDerivatives=0
size = 2 if uiNbDerivatives=1;
size = 3 if uiNbDerivatives=2; psNormal size must be equal to the uiNbSurfaces, the number of given surfaces. Life time of psPointAndDerivatives and psNormal must be handled by the user.
- Version
8.2
Warning
The number of derivatives must be less than or equal to 2.
- Return values
A3D_SUCCESS –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCrvIsPeriodic(const A3DCrvBase *pCrv, A3DBool *pbIsPeriodic)
Function to determine if a curve is periodic.
- Version
10.1
- Parameters
pCrv – [in] The input curve.
pbIsPeriodic – [out] The returned value.
- Return values
A3D_SUCCESS –
A3D_ERROR –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSurfGetDomain(const A3DSurfBase *pSrf, A3DDomainData *pDomain)
Function to get a surface parametric domain.
- Return values
A3D_SUCCESS –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSurfEvaluate(const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DUns32 uiNbDerivatives, A3DVector3dData *pPointAndDerivatives)
Function to evaluate a point and the derivatives on a surface.
pPointAndDerivatives size must be equal to (uiNbDerivatives+1)*(uiNbDerivatives+1)
Derivatives are stored in the following order:
if uiNbDerivatives=0, pPointAndDerivatives size must be equal to 1
if uiNbDerivatives=1, pPointAndDerivatives size must be equal to 4
-
A3DStatus A3DSurfIsDegenerated(const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DDouble dTolerance, A3DBool *pbIsDegenerated, A3DBool *pbUDirection)
Function to determine if a surface is degenerated at a point.
- Version
9.0
- Parameters
pSurf – [in] The input surface.
pUVParameter – [in] The coordinates of the point.
dTolerance – [in] The tolerance of the test.
pbIsDegenerated – [out] The returned value.
pbUDirection – [out] The direction of the degeneracy if a degeneracy is detected (true = U direction, and false = V direction).
- Return values
A3D_SUCCESS –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSurfIsPeriodic(const A3DSurfBase *pSrf, A3DBool *pbUIsPeriodic, A3DBool *pbVIsPeriodic)
Function to determine if a surface is periodic.
- Version
10.1
- Parameters
pSrf – [in] The input surface.
pbUIsPeriodic – [out] The returned value for u direction.
pbVIsPeriodic – [out] The returned value for v direction.
- Return values
A3D_SUCCESS –
A3D_ERROR –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSurfIsG1Continuous(const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DDouble dAngleTolerance, A3DBool *pbUG1Continuous, A3DBool *pbVG1Continuous)
Function to determine if a surface is G1 discontinuous at a point.
- Version
9.0
- Parameters
pSurf – [in] The input surface.
pUVParameter – [in] The coordinates of the point.
dAngleTolerance – [in] The derivative angle tolerance.
pbUG1Continuous – [out] The returned value for u direction.
pbVG1Continuous – [out] The returned value for v direction.
- Return values
A3D_SUCCESS –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DGetCurveAsAnalytic(const A3DCrvBase *pCurve, double dTol, A3DCrvBase **pAnalyticCurve, A3DEAnalyticType *peAnalyticType)
Function to get curves as analytic (line or circle) according to a certain tolerance.
Use A3DEntityDelete to delete the analytic curve after using it.
- Deprecated:
- Version
5.0
- Return values
A3D_SUCCESS – if an analytic has been created
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSimplifyCurveWithAnalytics(const A3DCrvBase *pCurve, A3DDouble dTol, A3DUns32 uNbRecognizedType, A3DEEntityType const *pOptRecognizedType, A3DCrvBase **pAnalyticCurve, A3DEAnalyticType *peAnalyticType)
Function to get curves as analytic (line or circle) according to a certain tolerance.
Use A3DEntityDelete to delete the analytic curve after using it. Recognized curve type are: Linear Curve Circular Curve If uNbRecognizedType and pOptRecognizedType are defined, A3DSimplifyCurveWithAnalytics recognizes only given types.
- Version
7.0
Warning
must be deleted by the user.
- Parameters
pCurve – [inout] The input curve.
dTol – [in] The tolerance.
uNbRecognizedType – [in] Size of array pOptRecognizedType.
pOptRecognizedType – [in] Optional type of curve we want to recognize.
pAnalyticCurve – [out] The new analytic curve.
peAnalyticType – [out] The type of analytic curve.
- Return values
A3D_SUCCESS – if an analytic has been created
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DGetCurveAsAnalyticFromCoEdge(const A3DTopoCoEdge *pCoEdge, double dTol, A3DCrvBase **pAnalyticCurve, A3DEAnalyticType *peAnalyticType)
Function to get curves as analytic (line or circle) according to a certain tolerance Try to use UV curves from Edges if exist, otherwise use 3D Curves.
Use A3DEntityDelete to delete the analytic curve after using it.
- Deprecated:
- Version
5.0
- Return values
A3D_SUCCESS – if an analytic has been created
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSimplifyCurveWithAnalyticsFromCoEdge(const A3DTopoCoEdge *pCoEdge, A3DDouble dTol, A3DUns32 uNbRecognizedType, A3DEEntityType const *pOptRecognizedType, A3DCrvBase **pAnalyticCurve, A3DEAnalyticType *peAnalyticType)
Function to get curves as analytic (line or circle) according to a certain tolerance Try to use 3D curves from Edges if exist, otherwise use UV Curves on CoEdge.
Use A3DEntityDelete to delete the analytic curve after using it. Recognize curve type are: Linear Curve Circular Curve If uNbRecognizedType and pOptRecognizedType are defined, A3DSimplifyCurveWithAnalytics recognizes only given types.
- Version
7.0
Warning
must be deleted by the user.
- Parameters
pCoEdge – [in] The input coEdge.
dTol – [in] The tolerance.
uNbRecognizedType – [in] Size of array pOptRecognizedType.
pOptRecognizedType – [in] Optional type of curve we want to recognize.
pAnalyticCurve – [out] The new analytic curve.
peAnalyticType – [out] The type of analytic curve.
- Return values
A3D_SUCCESS – if an analytic has been created
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DGetSurfaceAsAnalytic(A3DSurfBase const *pSrf, double dTol, A3DSurfBase **pAnalyticSurface, A3DEAnalyticType *peAnalyticType)
Function to get surface as analytic according to a certain tolerance.
Use A3DEntityDelete to delete the analytic surface after using it. Recognized surface type are: Conic Surface Cylindrical Surface Plane Surface Spherical Surface Toric Surface
- Deprecated:
- Version
5.0
Warning
must be deleted by the user
- Parameters
pSrf – [in] The input surface
dTol – [in] Tolerance
pAnalyticSurface – [out] The new analytic surface.
peAnalyticType – [out] The type of analytic surface
- Return values
A3D_SUCCESS –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSimplifySurfaceWithAnalytics(A3DSurfBase const *pSrf, A3DDouble dTol, A3DUns32 uNbRecognizedType, A3DEEntityType const *pOptRecognizedType, A3DSurfBase **pAnalyticSurface, A3DEAnalyticType *peAnalyticType)
Function to get surface as analytic according to a certain tolerance.
Use A3DEntityDelete to delete the analytic surface after using it. Recognized surface type are Conic Surface Cylindrical Surface Plane Surface Spherical Surface Toric Surface If uNbRecognizedType and pOptRecognizedType are defined, A3DSimplifySurfaceWithAnalytics recognizes only given types.
- Version
7.0
Warning
must be deleted by the user.
- Parameters
pSrf – [in] The input surface.
dTol – [in] Tolerance.
uNbRecognizedType – [in] Size of array pOptRecognizedType.
pOptRecognizedType – [in] Optional type of surface we want to recognize.
pAnalyticSurface – [out] The new analytic surface.
peAnalyticType – [out] The type of analytic surface.
- Return values
A3D_SUCCESS –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCrvProjectPoint(const A3DCrvBase *pCrv, const A3DVector3dData *pPointToProject, A3DUns32 *puiNbSolutions, A3DDouble **ppdSolutionParameter, A3DDouble **ppdSolutionDistance)
This function projects a point on a curve.
ppdSolutionParameter and ppdSolutionDistance arrays give the parameter on the curve and the spatial distance between pPointToProject and the solution (on the curve). In order to free output arrays call again A3DSurfProjectPoint with curve sets to NULL.
- Version
5.0
- Parameters
pCrv – [in] The input curve.
pPointToProject – [in] The input point to project on curve.
puiNbSolutions – [out] The number of returned solutions.
ppdSolutionParameter – [out] Array of parameters on the curve.
ppdSolutionDistance – [out] Array of spatial distances between pPointToProject and the solution (on the curve).
- Return values
A3D_SUCCESS –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSurfProjectPoint(const A3DSurfBase *pSurf, const A3DVector3dData *pPointToProject, A3DUns32 *puiNbSolutions, A3DVector2dData **ppdSolutionParameters, A3DDouble **ppdSolutionDistance)
This function projects a point on a surface The number of returned solutions is given by puiNbSolutions and for each one, ppdSolutionParameters and ppdSolutionDistance arrays give the 2D point in surface parametric domain and the spatial distance between pPointToProject and the solution (on the surface).
In order to free output arrays call again A3DSurfProjectPoint with surface sets to NULL.
- Version
5.0
- Parameters
pSurf – [in] The input surface.
pPointToProject – [in] The input point to project on surface.
puiNbSolutions – [out] The number of returned solutions.
ppdSolutionParameters – [out] Array of 2D points in the surface parametric domain.
ppdSolutionDistance – [out] Array of spatial distances between pPointToProject and the solution (on the surface).
- Return values
A3D_SUCCESS –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCrvLocalProjectPoint(const A3DCrvBase *pCrv, const A3DVector3dData *pPointToProject, A3DDouble dGuessParameter, A3DBool *pbFindSolution, A3DDouble *pdSolutionParameter, A3DDouble *pdSolutionDistance)
This function projects a point on a curve with a guess parameter pdSolutionParameter and pdSolutionDistance give the parameter on the curve and the spatial distance between pPointToProject and the solution (on the curve).
- Version
5.0
- Parameters
pCrv – [in] The input curve.
pPointToProject – [in] The input point to project on curve.
dGuessParameter – [in] The input guess parameters.
pbFindSolution – [out] Result status.
pdSolutionParameter – [out] parameter solution.
pdSolutionDistance – [out] spatial distance (optional).
- Return values
A3D_SUCCESS –
A3D_INVALID_ENTITY_NULL –
A3D_CRV_INVALID_PARAMETER –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSurfLocalProjectPoint(const A3DSurfBase *pSurf, const A3DVector3dData *pPointToProject, const A3DVector2dData *pGuessPoint, A3DBool *pbFindSolution, A3DVector2dData *pSolutionParameter, A3DDouble *pdSolutionDistance)
This function projects a point on a surface with a guess parameter pSolutionParameter and pdSolutionDistance give the 2D point in surface parametric domain and the spatial distance between pPointToProject and the solution (on the surface).
pGuessPoint must be contained by the domain of the surface.
- Version
5.0
- Parameters
pSurf – [in] The input surface.
pPointToProject – [in] The input point to project on surface.
pGuessPoint – [in] The input guess parameters.
pbFindSolution – [out] Result status.
pSolutionParameter – [out] parameter solution.
pdSolutionDistance – [out] spatial distance (optional).
- Return values
A3D_SUCCESS –
A3D_INVALID_ENTITY_NULL –
A3D_SRF_INVALID_PARAMETERS –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSurfEvaluateNormal(const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DVector3dData *pNormal)
Function to evaluate a normal on a surface.
- Parameters
pSurf – [in] The input surface.
pUVParameter – [in] The input UV point to evaluate the normal of the surface.
pNormal – [out] The normal of the surface at the UV parameter.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DSewBrep(A3DRiBrepModel ***p, A3DUns32 uNbBrepModels, A3DDouble dTolerance, A3DSewOptionsData const *pData, A3DRiBrepModel ***pBrepModelsOut, A3DUns32 *const uNbBrepOut)
Function to sew multiple B-rep data structures.
- Version
5.2
- Parameters
p – [in] An array of A3DRiBrepModel* to sew.
uNbBrepModels – [in] The number of A3DRiBrepModel* in p.
dTolerance – [in] The maximum tolerance for the sewing (in file unit).
pData – [in] options of the sew.
pBrepModelsOut – [out] The output array of sewed A3DRiBrepModel*.
uNbBrepOut – [out] The number of A3DRiBrepModel* in pBrepModelsOut.
- Return values
A3D_SUCCESS –
A3D_ERROR –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DAsmModelFileSew(A3DAsmModelFile **ppModelFile, A3DDouble dToleranceInMM, A3DSewOptionsData const *pData)
Function to sew one model file.
- Version
6.0
- Parameters
ppModelFile – [in] The model file to sew.
dToleranceInMM – [in] The maximum tolerance for the sewing (in mm). Must be positive.
pData – [in] options of the sew.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA –
A3D_INVALID_ENTITY_NULL –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DFaceUVPointInsideManagerCreate(A3DFaceUVPointInsideManagerData const *pData, A3DFaceUVPointInsideManager **pManager)
Creates an A3DFaceUVPointInsideManager from an A3DFaceUVPointInsideManagerData structure.
- Version
5.2
- Return values
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_SUCCESS –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DFaceUVPointInsideManagerDelete(A3DFaceUVPointInsideManager *pManager)
Deletes an A3DFaceUVPointInsideManager.
- Version
5.2
- Return values
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_SUCCESS –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DFaceUVPointInside(A3DFaceUVPointInsideManager *pManager, A3DTopoFace const *psFace, A3DVector2dData const *pUVParameter, A3DDouble dTol3D, A3DUns8 *puiUVInFace)
This function projects a UV point on a face, and return if it’s inside or not.
puiUVInFace gives the result: 0 if the point is outside the face, and 1 if it’s inside. dTol3D is used to check if a UV point is on edges. If it’s set to zero and the point is not inside the face but potentially on its edges, the tolerance check will not happen.
- Version
5.2
- Parameters
pManager – [in] The face manager.
psFace – [in] The input face.
pUVParameter – [in] The input UV Point.
dTol3D – [in] Tolerance to check if the UV point is on the edge.
puiUVInFace – [out] Status of the UV point on the face. 0 is outside, 1 is inside.
- Return values
A3D_SUCCESS –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_ENTITY_NULL –
A3D_TOPO_GEOMETRY_MISSING – - it’s missing UV curves
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
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 in case of success or an error code
-
A3DStatus A3DProjectPointCloudManagerCreateFromRI(A3DProjectPointCloudManagerDataFromRI *pData, A3DProjectPointCloudManager **pManager)
Create a Point Cloud Manager from a set of A3DRiRepresentationItem with matrix placement.
- Version
8.1
- 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 in case of success or an error code
-
A3DStatus A3DProjectPointCloudManagerCreateFromModelFile(A3DAsmModelFile *pModelFile, A3DProjectPointCloudManager **pManager)
Create a Point Cloud Manager from a A3DAsmModelFile.
- Version
8.1
- 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 in case of success or an error code
-
A3DStatus A3DProjectPointCloudManagerDelete(A3DProjectPointCloudManager *pManager)
Deletes an A3DProjectPointCloudManager.
- Version
8.1
- Return values
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_SUCCESS –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DProjectPointCloud2(A3DProjectPointCloudManager *pManager, A3DUns32 uPointCloudSize, A3DVector3dData *pPointCloudToProject, A3DBool bUseExactComputation, A3DUns32 uNbThreads, A3DDouble dInsidePointEdgeTolerance, A3DProjectedPointCloudData **ppProjectedPointCloud)
Function to project Point Cloud on BrepModel with a A3DProjectPointCloudManager.
- Deprecated:
- Version
8.1
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. 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.
dInsidePointEdgeTolerance – [in] Tolerance used to check if projection point which is inside a face is on edge.
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_INVALID_DATA –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
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
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 (can contain normal direction see A3DProjectPointCloudOptionsData). 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. 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_INVALID_DATA –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DComputePlanarSectionOnRepresentationItem(A3DRiBrepModel const *pRiBrepModel, A3DPlanarSectionData const *psSectionParametersData, A3DRiSet **ppRISectionResults)
Function to compute plane section on BrepModel.
- Version
7.0
- Parameters
pRiBrepModel – [in] B-rep models.
psSectionParametersData – [in] Parameters of the planar section.
ppRISectionResults – [out] Array of section curves. ppRISectionResults is automatically allocated by A3DComputePlanarSectionOnRepresentationItem. It has to be freed with a call to A3DComputePlanarSectionOnRepresentationItem(NULL, psSectionParametersData, ppRISectionCurvesis).
- Return values
A3D_SUCCESS –
A3D_INITIALIZE_NOT_CALLED –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DComputePlanarSectionOnModelFile(A3DAsmModelFile const *pModelFile, A3DPlanarSectionData const *psSectionParametersData, A3DUns32 *pNumberOfSections, A3DRiSet ***pppRISectionElements)
Function to compute plane section on ModelFile.
- Version
7.0
- Parameters
pModelFile – [in] Model file to section.
psSectionParametersData – [in] Parameters of the planar section.
pNumberOfSections – [out] Number of A3DRiSets.
pppRISectionElements – [out] Array of A3DRiSets. ppRISectionElements is automatically allocated by A3DComputePlanarSectionOnModelFile. It has to be freed with a call to A3DComputePlanarSectionOnModelFile(NULL, psSectionParametersData, pNumberOfSections, ppRISectionElements).
- Return values
A3D_SUCCESS –
A3D_INITIALIZE_NOT_CALLED –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCurveLength(const A3DCrvBase *pCrv, const A3DIntervalData *pOptInterval, A3DDouble *pdLength)
Function to compute the length of a curve (optionally restricted to an interval)
- Version
7.0
- Parameters
pCrv – [in] The curve: A3DCrvBase.
pOptInterval – [in] The interval of restriction of the curve (if NULL, the natural interval of the curve will be used).
pdLength – [out] The length of the curve.
- Return values
A3D_SUCCESS –
A3D_INITIALIZE_NOT_CALLED –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCompareFaces(A3DCompareInputData *pInput, A3DCompareOutputData *pOutput)
Function to compare the faces of two groups of A3DRiBrepModel.
This function will detect if every points in a face of the first group (referenced as group of the old faces) can be projected to one of the faces of the other group (referenced as group of the new faces) within the given tolerance. This is useful for exemple to understand what has changed in a part between two versions: a hole has been added, an edge has been blended.
- Version
7.0
- Parameters
pInput – [in] pointer to a A3DCompareInputData that contains input data.
pOutput – [out] pointer to a A3DCompareOutputData that contains returned data. It has to be freed by calling again A3DCompareFaces with NULL as input structure pointer.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCompareFacesInBrepModels(A3DAsmModelFile *pFirstModelFile, A3DAsmModelFile *pSecondModelFile, A3DDouble dTolerance, A3DCompareOutputData *pOutput)
Function to compare the faces of two A3DAsmModelFile.
This is the same as A3DCompareFaces except that A3DRiBrepModel will be found by traversing the two A3DAsmModelFile.
- Version
7.0
Warning
Comparing two models with different units isn’t supported. Such input to the compare function will given irrelevant results.
- Parameters
pFirstModelFile – [in] a A3DAsmModelFile containing the first group of A3DRiBrepModel.
pSecondModelFile – [in] a A3DAsmModelFile containing the second group of A3DRiBrepModel.
dTolerance – [in] maximum distance between two matching faces, in model’s unit
pOutput – [out] pointer to a A3DCompareOutputData that contains returned data. It has to be freed by calling again A3DCompareFacesInBrepModels with NULL as input A3DAsmModelFile pointers.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCutWithMultiPlanarSectionOnRepresentationItems(A3DUns32 uiNbRepItems, A3DRiRepresentationItem const **apRepItems, A3DDouble **pOptPlacements, A3DMultiPlanarSectionData const *psSectionParametersData, A3DUns32 *pNumberOfRepItems, A3DRiRepresentationItem ***pppRIRepresentationItem, A3DRiRepresentationItem ***pppRIPlanarSections)
Function to compute the result of a section with several planes on a set of A3DRiRepresentationItem.
Call A3DCutWithMultiPlanarSectionOnRepresentationItems( 0, NULL, NULL, NULL, pNumberOfRepItems, pppRIRepresentationItem, pppRIPlanarSections) to release pppRIRepresentationItem and pppRIPlanarSections data
- Version
8.2
- Parameters
uiNbRepItems – [in] Number of A3DRiRepresentationItem.
apRepItems – [in] set of A3DRiRepresentationItem.
pOptPlacements – [in] Optional set of representation item placements (16 A3DDouble matrix).
psSectionParametersData – [in] define the section to use.
pNumberOfRepItems – [out] Number of A3DRiRepresentationItem in pppRIRepresentationItem and pppRIPlanarSections array.
pppRIRepresentationItem – [out] A3DRiRepresentationItem corresponding to the boolean section results. Can be NULL if a A3DRiRepresentationItem if fully cutted by the section.
pppRIPlanarSections – [out] A3DRiRepresentationItem corresponding to planar section for each A3DRiRepresentationItem
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DCutWithMultiPlanarSectionOnModelFile(A3DAsmModelFile const *pModelFile, A3DMkpView const *pOptMrkRView, A3DMultiPlanarSectionData const *psSectionParametersData, A3DUns32 *pNumberOfRepItems, A3DRiRepresentationItem ***pppRIRepresentationItem, A3DRiRepresentationItem ***pppRIPlanarSections)
Function to compute the result of a section with several planes on a A3DAsmModelFile.
Call A3DCutWithMultiPlanarSectionOnModelFile( NULL, pOptMrkRView, psSectionParametersData, NULL, pNumberOfRepItems, pppRIRepresentationItem, pppRIPlanarSections) to release pppRIRepresentationItem and pppRIPlanarSections data
- Version
8.2
If
pOptMrkRView
is a cutting view,psSectionParametersData
can be set to0
. In this case, the cutting planes withinpOptMrkRView
are used for the computation. Planes must to ordered and be set a profile, otherwise the function will return#A3D_TOOLS_INVALID_SECTION_PLANE
.Remark
If the model file doesn’t contain any representation item, the function will return
#A3D_INVALID_DATA error
- Parameters
pModelFile – [in] Model file to section.
pOptMrkRView – [in] optional A3DMkpView (filter and/or move entities).
psSectionParametersData – [in] define the section to use (can be NULL if pOptMrkRView is a cutting view).
pNumberOfRepItems – [out] Number of A3DRiRepresentationItem in pppRIRepresentationItem and pppRIPlanarSections array.
pppRIRepresentationItem – [out] A3DRiRepresentationItem corresponding to the section results. Can be NULL if a A3DRiRepresentationItem if fully cutted by the section.
pppRIPlanarSections – [out] A3DRiRepresentationItem corresponding to planar section for each A3DRiRepresentationItem
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
A3D_ERROR –
A3D_TOOLS_INVALID_SECTION_PLANE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DComputeOrthoHLROnRepresentationItems(A3DUns32 uiNbRepItems, A3DRiRepresentationItem const **apRepItems, A3DDouble **pOptPlacements, A3DHLRViewPlaneData const *psHLRViewPlaneData, A3DUns32 *pNumberHLRData, A3DHLRRepresentationItemData **pppHLRData)
Function to compute Hidden Line Removal on a set of A3DRiRepresentationItem.
Call A3DComputeOrthoHLROnRepresentationItems( 0, NULL, NULL, NULL, pNumberHLRData, pppHLRData) to release pppHLRData structure ( A3DCrvPolyLine was not released)
- Version
8.1
- Parameters
uiNbRepItems – [in] Number of A3DRiRepresentationItem.
apRepItems – [in] set of A3DRiRepresentationItem.
pOptPlacements – [in] Optional set of representation item placements (16 A3DDouble matrix).
psHLRViewPlaneData – [in] define a plane as a camera with orthogonal projection.
pNumberHLRData – [out] Number A3DHLRRepresentationItemData.
pppHLRData – [out] HLR curve result grouped by A3DRiRepresentationItem entity. pppHLRData is automatically allocated by A3DComputeOrthoHLROnRepresentationItems.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA –
A3D_INVALID_ENTITY_NULL – if apRepItems contains null pointers
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 in case of success or an error code
-
A3DStatus A3DComputeOrthoHLROnModelFile(A3DAsmModelFile const *pModelFile, A3DMkpView const *pOptMrkRView, A3DHLRViewPlaneData const *psHLRViewPlaneData, A3DUns32 *pNumberHLRData, A3DHLRRepresentationItemData **pppHLRData)
Function to compute Hidden Line Removal on a A3DAsmModelFile.
- Deprecated:
- Version
8.1
- Parameters
pModelFile – [in] Model file to work on.
pOptMrkRView – [in] optional A3DMkpView (cut, filter and/or move entities).
psHLRViewPlaneData – [in] define a plane as a camera with orthogonal projection.
pNumberHLRData – [out] Number A3DHLRRepresentationItemData.
pppHLRData – [out] HLR curve result grouped by A3DRiRepresentationItem entity. pppHLRData is automatically allocated by A3DComputeOrthoHLROnModelFile.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA –
A3D_ERROR –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DComputeOrthoHLROnModelFile2(A3DAsmModelFile const *pModelFile, A3DMkpView const *pOptMrkRView, A3DHLRViewPlaneData const *psHLRViewPlaneData, A3DUns32 *pNumberHLRRepItem, A3DHLRRepresentationItem ***pppHLRRepItem)
Function to compute Hidden Line Removal on a A3DAsmModelFile.
- Deprecated:
- Version
9.0
Call A3DComputeOrthoHLROnModelFile2( NULL, NULL, NULL, pNumberHLRRepItem, pppHLRRepItem) to release pppHLRRepItem structure ( internal A3DCrvPolyLine was not released)
If
pOptMrkRView
is a cutting view,psSectionParametersData
can be set to0
. In this case, the cutting planes withinpOptMrkRView
are used for the computation. Planes must to ordered and be set a profile, otherwise the function will return#A3D_TOOLS_INVALID_SECTION_PLANE
.Remark
If the model file doesn’t contain any representation item, the function will return
#A3D_INVALID_DATA error
- Parameters
pModelFile – [in] Model file to work on.
pOptMrkRView – [in] optional A3DMkpView (cut, filter and/or move entities).
psHLRViewPlaneData – [in] define a plane as a camera with orthogonal projection.
pNumberHLRRepItem – [out] Number A3DHLRRepresentationItem.
pppHLRRepItem – [out] HLR curve result grouped by A3DRiRepresentationItem entity. pppHLRRepItem is automatically allocated by A3DComputeOrthoHLROnModelFile.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA –
A3D_ERROR –
A3D_TOOLS_INVALID_SECTION_PLANE –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DComputeOrthoHLROnModelFile3(A3DAsmModelFile const *pModelFile, A3DMkpView const *pOptMrkRView, A3DHLRViewPlaneData const *psHLRViewPlaneData, A3DHLROptionsData const *psHLROptionsData, A3DUns32 *pNumberHLRRepItem, A3DHLRRepresentationItem ***ppHLRRepItems)
Function to compute Hidden Line Removal on a A3DAsmModelFile.
Call A3DComputeOrthoHLROnModelFile3( NULL, NULL, NULL, NULL, pNumberHLRRepItem, pppHLRRepItem) to release pppHLRRepItem structure ( internal A3DCrvPolyLine was not released)
- Version
10.1
If
pOptMrkRView
is a cutting view,psSectionParametersData
can be set to0
. In this case, the cutting planes withinpOptMrkRView
are used for the computation. Planes must to ordered and be set a profile, otherwise the function will return#A3D_TOOLS_INVALID_SECTION_PLANE
.Remark
If the model file doesn’t contain any representation item, the function will return
#A3D_INVALID_DATA error
- Parameters
pModelFile – [in] Model file to work on.
pOptMrkRView – [in] optional A3DMkpView (cut, filter and/or move entities).
psHLRViewPlaneData – [in] define a plane as a camera with orthogonal projection.
psHLROptionsData – [in] define options used to compute HLR. if set to NULL, default A3DHLROptionsData value are used.
pNumberHLRRepItem – [out] Number A3DHLRRepresentationItem.
ppHLRRepItems – [out] HLR curve result grouped by A3DRiRepresentationItem entity. pppHLRRepItem is automatically allocated by A3DComputeOrthoHLROnModelFile.
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_INVALID_DATA –
A3D_ERROR –
A3D_TOOLS_INVALID_SECTION_PLANE –
A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DStatus A3DHLRRepresentationItemGet(A3DHLRRepresentationItem const *pHLRRepItem, A3DHLRRepresentationItemData *psRIData)
Populates the A3DHLRRepresentationItemData structure.
Call A3DHLRRepresentationItemGet( NULL, psRIData) to release psRIData structure ( A3DCrvPolyLine was not released)
- Version
9.0
- Parameters
pHLRRepItem – [in] The input entity
psRIData – [out] The structure to populate
- Return values
A3D_SUCCESS –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_ENTITY_TYPE –
A3D_ERROR –
- Returns
A3D_SUCCESS in case of success or an error code
-
A3DVoid A3DDllActivateXMLTrace(A3DBool activate)
This function activates an XML trace file that lists the PRC entities contained in a modelfile built during a Load session or written during an export to PRC session.
A load session is done with following functions : A3DAsmModelFileLoadFromFile, A3DAsmModelFileLoadFromMultiplePrcFile, A3DAsmModelFileLoadFromPrcFile, and A3DAsmModelFileLoadFromPrcStream. An export session is done with following functions : A3DAsmModelFileExportToPrcFile. To activate an XML trace, call this function BEFORE calling any of these functions.
Remark
Because this function does not return A3DStatus the internal thread safety policy is to wait for the availability of the API.
- Version
2.0
Note
XML trace file is created in the same folder as the filename provided to the studied function.
Warning
This function may slow down your process. Use XML trace only for debugging.
Warning
The XML file produced by this feature can be very large.
-
A3DStatus A3DXmlParsing(const A3DAsmModelFile *pModelfile, const A3DUTF8Char *pcFileName)
-
A3DStatus A3DCollisionCompute(A3DCollisionGroupData const *pGroup1, A3DCollisionGroupData const *pGroup2, A3DCollisionParameterData const *pParameterData, A3DUns32 *uCollisionResultsSize, A3DCollisionResultData **pCollisionResults)
Determine interferences between A3DRiRepresentationItem.
This function allows to determine if there are interferences between A3DRiRepresentationItem from one or two groups.
- Version
11.1
Call A3DCollisionCompute( NULL, NULL, NULL, uCollisionResultsSize, pCollisionResults) to release pCollisionResults structure
if pParameterData->m_dContactLimit is set to 0., the function return only A3DCollision_Collision instead of A3DCollision_Contact, A3DCollision_FirstInside and A3DCollision_SecondInside.
- Parameters
pGroup1 – [in] define the first group of A3DTransfoRepresentationItemData.
pGroup2 – [in] define a optional second group of A3DTransfoRepresentationItemData.
pParameterData – [in] set parameters for collision computation.
uCollisionResultsSize – [out] Number of A3DCollisionResultData in pCollisionResults.
pCollisionResults – [out] Array of A3DCollisionResultData, containing collision computation result. pCollisionResults is automatically allocated by A3DCollisionCompute.
- Returns
A3D_SUCCESS in case of success or an error code
- Return values
A3D_INVALID_DATA_STRUCT_SIZE –
A3D_INVALID_DATA_STRUCT_NULL –
A3D_INVALID_DATA –
A3D_SUCCESS –
A3D_ERROR –