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

A3DSewOptionsData option structure.

A3DFaceUVPointInsideManagerData

A3DFaceUVPointInsideManager structure.

A3DProjectedPointCloudData

A3DProjectedPointCloudData structure.

A3DProjectPointCloudManagerDataFromRI

A3DProjectPointCloudManagerDataFromRI sructure.

A3DProjectPointCloudOptionsData

A3DProjectPointCloudOptionsData structure.

A3DPlanarSectionData

A3DPlanarSectionData structure.

A3DCompareInputData

A3DCompareInputData structure that contains input data of A3DCompareFaces .

A3DCompareOutputData

A3DCompareOutputData structure that contains result data of A3DCompareFaces or A3DCompareFacesInBrepModels .

A3DMultiPlanarSectionData

A3DHLRViewPlaneData

A3DHLRViewPlaneData structure.

A3DHLRCurveData

A3DHLRCurveData structure.

A3DHLRSectionFaceData

A3DHLRSectionFaceData structure.

A3DHLRRepresentationItemData

A3DHLRCurveData structure.

A3DHLROptionsData

A3DHLROptionsData structure.

A3DTransfoRepresentationItemData

A3DTransfoRepresentationItemData structure.

A3DCollisionGroupData

A3DCollisionGroupData structure.

A3DCollisionParameterData

A3DCollisionParameterData structure.

A3DCollisionResultData

A3DCollisionResultData structure.

Functions

A3DCrvGetInterval()

Function to get a curve parametric interval.

A3DCrvEvaluate()

Function to evaluate a point and the derivatives of a curve at a parameter.

A3DCrvEvaluatePointAndNormal()

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.

A3DCrvIsPeriodic()

Function to determine if a curve is periodic.

A3DSurfGetDomain()

Function to get a surface parametric domain.

A3DSurfEvaluate()

Function to evaluate a point and the derivatives on a surface.

A3DSurfIsDegenerated()

Function to determine if a surface is degenerated at a point.

A3DSurfIsPeriodic()

Function to determine if a surface is periodic.

A3DSurfIsG1Continuous()

Function to determine if a surface is G1 discontinuous at a point.

A3DGetCurveAsAnalytic()

Function to get curves as analytic (line or circle) according to a certain tolerance.

A3DSimplifyCurveWithAnalytics()

Function to get curves as analytic (line or circle) according to a certain tolerance.

A3DGetCurveAsAnalyticFromCoEdge()

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.

A3DSimplifyCurveWithAnalyticsFromCoEdge()

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.

A3DGetSurfaceAsAnalytic()

Function to get surface as analytic according to a certain tolerance.

A3DSimplifySurfaceWithAnalytics()

Function to get surface as analytic according to a certain tolerance.

A3DCrvProjectPoint()

This function projects a point on a curve.

A3DSurfProjectPoint()

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).

A3DCrvLocalProjectPoint()

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).

A3DSurfLocalProjectPoint()

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).

A3DSurfEvaluateNormal()

Function to evaluate a normal on a surface.

A3DSewBrep()

Function to sew multiple B-rep data structures.

A3DAsmModelFileSew()

Function to sew one model file.

A3DFaceUVPointInsideManagerCreate()

Creates an A3DFaceUVPointInsideManager from an A3DFaceUVPointInsideManagerData structure.

A3DFaceUVPointInsideManagerDelete()

Deletes an A3DFaceUVPointInsideManager .

A3DFaceUVPointInside()

This function projects a UV point on a face, and return if it’s inside or not.

A3DProjectPointCloud()

Function to project Point Cloud on BrepModel.

A3DProjectPointCloudManagerCreateFromRI()

Create a Point Cloud Manager from a set of A3DRiRepresentationItem with matrix placement.

A3DProjectPointCloudManagerCreateFromModelFile()

Create a Point Cloud Manager from a A3DAsmModelFile .

A3DProjectPointCloudManagerDelete()

Deletes an A3DProjectPointCloudManager .

A3DProjectPointCloud2()

Function to project Point Cloud on BrepModel with a A3DProjectPointCloudManager .

A3DProjectPointCloud3()

Function to project Point Cloud on BrepModel with a A3DProjectPointCloudManager .

A3DComputePlanarSectionOnRepresentationItem()

Function to compute plane section on BrepModel.

A3DComputePlanarSectionOnModelFile()

Function to compute plane section on ModelFile.

A3DCurveLength()

Function to compute the length of a curve (optionally restricted to an interval)

A3DCompareFaces()

Function to compare the faces of two groups of A3DRiBrepModel.

A3DCompareFacesInBrepModels()

Function to compare the faces of two A3DAsmModelFile .

A3DCutWithMultiPlanarSectionOnRepresentationItems()

Function to compute the result of a section with several planes on a set of A3DRiRepresentationItem .

A3DCutWithMultiPlanarSectionOnModelFile()

Function to compute the result of a section with several planes on a A3DAsmModelFile .

A3DComputeOrthoHLROnRepresentationItems()

Function to compute Hidden Line Removal on a set of A3DRiRepresentationItem .

A3DComputeOrthoHLROnModelFile()

Function to compute Hidden Line Removal on a A3DAsmModelFile .

A3DComputeOrthoHLROnModelFile2()

Function to compute Hidden Line Removal on a A3DAsmModelFile .

A3DComputeOrthoHLROnModelFile3()

Function to compute Hidden Line Removal on a A3DAsmModelFile .

A3DHLRRepresentationItemGet()

Populates the A3DHLRRepresentationItemData structure.

A3DDllActivateXMLTrace()

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.

A3DXmlParsing()

A3DCollisionCompute()

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

pPointAndDerivatives size must be equal to (uiNbDerivatives+1):
  • 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

psPointAndDerivatives size must be equal to (uiNbDerivatives+1):
  • 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:

Use A3DSimplifyCurveWithAnalytics

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:

use A3DSimplifyCurveWithAnalyticsFromCoEdge

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:

use A3DSimplifySurfaceWithAnalytics

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:

use A3DProjectPointCloud3

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
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
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 to 0. In this case, the cutting planes within pOptMrkRView 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:

use A3DComputeOrthoHLROnModelFile2

Call A3DComputeOrthoHLROnModelFile( NULL, pOptMrkRView, NULL, pNumberHLRData, pppHLRData) to release pppHLRData structure ( A3DCrvPolyLine was not released) Note: If the model file doesn’t contain any representation items, function returns A3D_INVALID_DATA error;
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:

use A3DComputeOrthoHLROnModelFile3

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 to 0. In this case, the cutting planes within pOptMrkRView 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 to 0. In this case, the cutting planes within pOptMrkRView 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
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