< Home

< Programming Guide

< Supported File Formats

REFERENCE MANUAL

Functions
Eval on curves and surfaces

Functions

A3DStatus A3DCrvGetInterval (const A3DCrvBase *pCrv, A3DIntervalData *pInterval)
 Function to get a curve parametric interval. More...
 
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
. More...
 
A3DStatus A3DSrfGetDomain (const A3DSurfBase *pSrf, A3DDomainData *pDomain)
 Function to get a surface parametric domain. More...
 
A3DStatus A3DSurfEvaluate (const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DUns32 uiNbDerivatives, A3DVector3dData *pPointAndDerivatives)
 Function to evaluate a point and the derivatives on a surface. More...
 
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. More...
 
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. More...
 
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. More...
 
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 UV curves from Edges if exist, otherwise use 3D Curves. 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. More...
 
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. More...
 
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. More...
 
A3DStatus A3DSurfEvaluateNormal (const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DVector3dData *pNormal)
 Function to evaluate a normal on a surface. More...
 
A3DStatus A3DCrvProjectPoint (const A3DCrvBase *pCrv, const A3DVector3dData *pPointToProject, A3DUns32 *puiNbSolutions, A3DDouble **ppdSolutionParameter, A3DDouble **ppdSolutionDistance)
 This function projects a point on a curve The number of returned solutions is given by puiNbSolutions and for each one, ppdSolutionParameter and ppdSolutionDistance arrays give the parameter on the curve and the spatial distance between pPointToProject and the solution (on the curve). More...
 
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). More...
 
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). More...
 
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). More...
 
A3DStatus A3DSewBrep (A3DRiBrepModel ***p, A3DUns32 uNbBrepModels, double dTolerance, A3DRiBrepModel ***pBrepModelsOut, A3DUns32 *const uNbBrepOut)
 Function to sew multiple B-rep data structures. More...
 
A3DStatus A3DAsmModelFileSew (A3DAsmModelFile **ppModelFile, A3DDouble dToleranceInMM)
 Function to sew one model file. More...
 
A3DStatus A3DFaceUVPointInsideManagerCreate (A3DFaceUVPointInsideManagerData const *pData, A3DFaceUVPointInsideManager **pManager)
 Creates an A3DFaceUVPointInsideManager from an A3DFaceUVPointInsideManagerData structure. More...
 
A3DStatus A3DFaceUVPointInsideManagerDelete (A3DFaceUVPointInsideManager *pManager)
 Deletes an A3DFaceUVPointInsideManager. More...
 
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. More...
 
A3DStatus A3DProjectPointCloud (unsigned int uRiBrepModelSize, A3DRiBrepModel **pRiBrepModel, A3DUns32 uPointCloudSize, A3DVector3dData *pPointCloudToProject, A3DBool bUseExactComputation, A3DUns32 uNbThreads, A3DProjectedPointCloudData **ppProjectedPointCloud)
 Function to project Point Cloud on BrepModel. More...
 
A3DStatus A3DComputePlanarSectionOnRepresentationItem (A3DRiBrepModel const *pRiBrepModel, A3DPlanarSectionData const *psSectionParametersData, A3DRiSet **ppRISectionResults)
 Function to compute plane section on BrepModel. More...
 
A3DStatus A3DComputePlanarSectionOnModelFile (A3DAsmModelFile const *pModelFile, A3DPlanarSectionData const *psSectionParametersData, A3DUns32 *pNumberOfSections, A3DRiSet ***pppRISectionElements)
 Function to compute plane section on ModelFile. More...
 
A3DStatus A3DCurveLength (const A3DCrvBase *pCrv, A3DIntervalData *pOptInterval, A3DDouble *pdLength)
 Function to compute the length of a curve (optionally restricted to an interval) More...
 
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. More...
 
A3DStatus A3DCompareFacesInBrepModels (A3DAsmModelFile *pOldModelFile, A3DAsmModelFile *pNewModelFile, A3DDouble dToleranceInMM, 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. More...
 
enum  A3DEAnalyticType
 Tells what kind of curve has been created by A3DGetCurveAsAnalytic. More...
 

Detailed Description

Enumeration Type Documentation

Tells what kind of curve has been created by A3DGetCurveAsAnalytic.

Version
5.0

Function Documentation

A3DStatus A3DCrvGetInterval ( const A3DCrvBase pCrv,
A3DIntervalData pInterval 
)

Function to get a curve parametric interval.

Returns
A3D_SUCCESS
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.
Returns
A3D_SUCCESS
A3D_ERROR
A3DStatus A3DSrfGetDomain ( const A3DSurfBase pSrf,
A3DDomainData pDomain 
)

Function to get a surface parametric domain.

Returns
A3D_SUCCESS
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
       _ 2D array representation:
                         v derivs
                      |   0   |   1   |
                -----------------------
                   0  | Point |   V   |
      u derivs  -----------------------
                   1  |  U    |       |
       _ 1D array representation:
              0 |   1   |   2   |    3   |
          --------------------------------
          Point |   V   |   U   |        |
  • if uiNbDerivatives=2, pPointAndDerivatives size must be equal to 9
       _ 2D array representation:
                               v derivs
                      |   0   |   1   |   2   |
                -------------------------------
                   0  | Point |   V   |   V2  |
                -------------------------------
     u derivs      1  |  U    |   UV  |       |
                -------------------------------
                   2  |  U2   |       |       |
       _ 1D array representation:
              0 |   1   |   2   |    3   |   4   |   5   |    6   |   7   |   8   |
          -------------------------------------------------------------------------
          Point |   V   |   V2  |    U   |   UV  |       |   U2   |       |       |
Version
4.0
Warning
The number of derivatives must be less or equal to 2.
Returns
A3D_SUCCESS
A3D_ERROR
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.

Version
5.0
Warning
DEPRECATED: use A3DSimplifyCurveWithAnalytics
Returns
A3D_SUCCESS if an analytic has been created
A3D_ERROR
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
Parameters
[in,out]pCurveThe input curve.
[in]dTolThe tolerance.
[in]uNbRecognizedTypeSize of array pOptRecognizedType.
[in]pOptRecognizedTypeOptional type of curve we want to recognize.
[out]pAnalyticCurveThe new analytic curve.
Warning
must be deleted by the user.
Parameters
[out]peAnalyticTypeThe type of analytic curve.
Returns
A3D_SUCCESS if an analytic has been created
A3D_ERROR
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.

Version
5.0
Warning
DEPRECATED: use A3DSimplifyCurveWithAnalyticsFromCoEdge
Returns
A3D_SUCCESS if an analytic has been created
A3D_ERROR
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 UV curves from Edges if exist, otherwise use 3D Curves. 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
Parameters
[in]pCoEdgeThe input coEdge.
[in]dTolThe tolerance.
[in]uNbRecognizedTypeSize of array pOptRecognizedType.
[in]pOptRecognizedTypeOptional type of curve we want to recognize.
[out]pAnalyticCurveThe new analytic curve.
Warning
must be deleted by the user.
Parameters
[out]peAnalyticTypeThe type of analytic curve.
Returns
A3D_SUCCESS if an analytic has been created
A3D_ERROR
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.

Version
5.0
Warning
DEPRECATED: use A3DSimplifySurfaceWithAnalytics
Parameters
[in]pSrfThe input surface
[in]dTolTolerance
[out]pAnalyticSurfaceThe new analytic surface.
Warning
must be deleted by the user
Parameters
[out]peAnalyticTypeThe type of analytic surface
Returns
A3D_SUCCESS
A3D_INVALID_ENTITY_NULL
A3D_INVALID_ENTITY_TYPE
A3D_ERROR
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
Parameters
[in]pSrfThe input surface.
[in]dTolTolerance.
[in]uNbRecognizedTypeSize of array pOptRecognizedType.
[in]pOptRecognizedTypeOptional type of surface we want to recognize.
[out]pAnalyticSurfaceThe new analytic surface.
Warning
must be deleted by the user.
Parameters
[out]peAnalyticTypeThe type of analytic surface.
Returns
A3D_SUCCESS
A3D_INVALID_ENTITY_NULL
A3D_INVALID_ENTITY_TYPE
A3D_ERROR
A3DStatus A3DSurfEvaluateNormal ( const A3DSurfBase pSurf,
const A3DVector2dData pUVParameter,
A3DVector3dData pNormal 
)

Function to evaluate a normal on a surface.

Parameters
[in]pSurfThe input surface.
[in]pUVParameterThe input UV point to evaluate the normal of the surface.
[out]pNormalThe normal of the surface at the UV parameter.
Returns
A3D_SUCCESS
A3D_INVALID_DATA_STRUCT_NULL
A3D_INVALID_DATA_STRUCT_SIZE
A3D_INVALID_ENTITY_TYPE
A3D_ERROR
A3DStatus A3DCrvProjectPoint ( const A3DCrvBase pCrv,
const A3DVector3dData pPointToProject,
A3DUns32 puiNbSolutions,
A3DDouble **  ppdSolutionParameter,
A3DDouble **  ppdSolutionDistance 
)

This function projects a point on a curve The number of returned solutions is given by puiNbSolutions and for each one, ppdSolutionParameter and ppdSolutionDistance arrays give the parameter on the curve and the spatial distance between pPointToProject and the solution (on the curve).

Version
5.0
Parameters
[in]pCrvThe input curve.
[in]pPointToProjectThe input point to project on curve.
[out]puiNbSolutionsThe number of returned solutions.
[out]ppdSolutionParameterArray of parameters on the curve.
[out]ppdSolutionDistanceArray of spatial distances between pPointToProject and the solution (on the curve).
Returns
A3D_SUCCESS
A3D_ERROR
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).

Version
5.0
Parameters
[in]pSurfThe input surface.
[in]pPointToProjectThe input point to project on surface.
[out]puiNbSolutionsThe number of returned solutions.
[out]ppdSolutionParametersArray of 2D points in the surface parametric domain.
[out]ppdSolutionDistanceArray of spatial distances between pPointToProject and the solution (on the surface).
Returns
A3D_SUCCESS
A3D_ERROR
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
[in]pCrvThe input curve.
[in]pPointToProjectThe input point to project on curve.
[in]dGuessParameterThe input guess parameters.
[out]pbFindSolutionResult status.
[out]pdSolutionParameterparameter solution.
[out]pdSolutionDistancespatial distance (optional).
Returns
A3D_SUCCESS
A3D_INVALID_ENTITY_NULL
A3D_CRV_INVALID_PARAMETER
A3D_ERROR
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
[in]pSurfThe input surface.
[in]pPointToProjectThe input point to project on surface.
[in]pGuessPointThe input guess parameters.
[out]pbFindSolutionResult status.
[out]pSolutionParameterparameter solution.
[out]pdSolutionDistancespatial distance (optional).
Returns
A3D_SUCCESS
A3D_INVALID_ENTITY_NULL
A3D_SRF_INVALID_PARAMETERS
A3D_ERROR
A3DStatus A3DSewBrep ( A3DRiBrepModel ***  p,
A3DUns32  uNbBrepModels,
double  dTolerance,
A3DRiBrepModel ***  pBrepModelsOut,
A3DUns32 *const  uNbBrepOut 
)

Function to sew multiple B-rep data structures.

Version
5.2
Parameters
[in]pAn array of A3DRiBrepModel* to sew.
[in]uNbBrepModelsThe number of A3DRiBrepModel* in p.
[in]dToleranceThe maximum tolerance for the sewing (in file unit).
[out]pBrepModelsOutThe output array of sewed A3DRiBrepModel*.
[out]uNbBrepOutThe number of A3DRiBrepModel* in pBrepModelsOut.
Returns
A3D_SUCCESS
A3D_ERROR
A3D_INVALID_ENTITY_NULL
A3D_INVALID_DATA_STRUCT_SIZE
A3DStatus A3DAsmModelFileSew ( A3DAsmModelFile **  ppModelFile,
A3DDouble  dToleranceInMM 
)

Function to sew one model file.

Version
6.0
Parameters
[in]ppModelFileThe model file to sew.
[in]dToleranceInMMThe maximum tolerance for the sewing (in mm).
Returns
A3D_SUCCESS
A3D_INVALID_ENTITY_NULL
A3DStatus A3DFaceUVPointInsideManagerCreate ( A3DFaceUVPointInsideManagerData const *  pData,
A3DFaceUVPointInsideManager **  pManager 
)
A3DStatus A3DFaceUVPointInsideManagerDelete ( A3DFaceUVPointInsideManager pManager)
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
[in]pManagerThe face manager.
[in]psFaceThe input face.
[in]pUVParameterThe input UV Point.
[in]dTol3DTolerance to check if the UV point is on the edge.
[out]puiUVInFaceStatus of the UV point on the face. 0 is outside, 1 is inside.
Returns
A3D_SUCCESS
A3D_INVALID_ENTITY_TYPE
A3D_INVALID_ENTITY_NULL
A3D_TOPO_GEOMETRY_MISSING - it's missing UV curves
A3D_ERROR
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
[in]uRiBrepModelSizeNumber of BrepModels in pRiBrepModel.
[in]pRiBrepModelArray of Brep Models.
[in]uPointCloudSizeNumber of points in pPointCloudToProject.
[in]pPointCloudToProjectPoint cloud to project. This point cloud must be in the same coordinate system as the BrepData structures stored in BrepModel.
[in]bUseExactComputationFlag 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.
[in]uNbThreadsNumber of threads wanted. 0 means non multi-thread. Please avoid setting a number of threads larger than the number of CPU cores.
[out]ppProjectedPointCloudPoint cloud projected. ppProjectedPointCloud is automatically allocated by A3DProjectPointCloud. It must be freed with the custom free memory callback.
Returns
A3D_SUCCESS
A3D_INVALID_DATA_STRUCT_NULL
A3D_INVALID_DATA_STRUCT_SIZE
A3D_INVALID_ENTITY_TYPE
A3D_ERROR
A3DStatus A3DComputePlanarSectionOnRepresentationItem ( A3DRiBrepModel const *  pRiBrepModel,
A3DPlanarSectionData const *  psSectionParametersData,
A3DRiSet **  ppRISectionResults 
)

Function to compute plane section on BrepModel.

Version
7.0
Parameters
[in]pRiBrepModelB-rep models.
[in]psSectionParametersDataParameters of the planar section.
[out]ppRISectionResultsArray of section curves. ppRISectionResults is automatically allocated by A3DComputePlanarSectionOnRepresentationItem. It has to be freed with a call to A3DComputePlanarSectionOnRepresentationItem(NULL, psSectionParametersData, ppRISectionCurvesis).
Returns
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
A3DStatus A3DComputePlanarSectionOnModelFile ( A3DAsmModelFile const *  pModelFile,
A3DPlanarSectionData const *  psSectionParametersData,
A3DUns32 pNumberOfSections,
A3DRiSet ***  pppRISectionElements 
)

Function to compute plane section on ModelFile.

Version
7.0
Parameters
[in]pModelFileModel file.
[in]psSectionParametersDataParameters of the planar section.
[out]pNumberOfSectionsNumber of A3DRiSets.
[out]pppRISectionElementsArray of A3DRiSets. ppRISectionElements is automatically allocated by A3DComputePlanarSectionOnModelFile. It has to be freed with a call to A3DComputePlanarSectionOnModelFile(NULL, psSectionParametersData, pNumberOfSections, ppRISectionElements).
Returns
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
A3DStatus A3DCurveLength ( const A3DCrvBase pCrv,
A3DIntervalData pOptInterval,
A3DDouble pdLength 
)

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

Version
7.0
Parameters
[in]pCrvThe curve: A3DCrvBase.
[in]pOptIntervalThe interval of restriction of the curve (if NULL, the natural interval of the curve will be used).
[out]pdLengthThe length of the curve.
Returns
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
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
[in]pInputpointer to a A3DCompareInputData that contains input data.
[out]pOutputpointer to a A3DCompareOutputData that contains returned data. It has to be freed by calling again A3DCompareFaces with NULL as input structure pointer.
Returns
A3D_SUCCESS
A3D_INVALID_DATA_STRUCT_NULL
A3D_INVALID_DATA_STRUCT_SIZE
A3D_INVALID_ENTITY_TYPE
A3D_ERROR
A3DStatus A3DCompareFacesInBrepModels ( A3DAsmModelFile pOldModelFile,
A3DAsmModelFile pNewModelFile,
A3DDouble  dToleranceInMM,
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
Parameters
[in]pOldModelFilea A3DAsmModelFile containing the first group of A3DRiBrepModel.
[in]pNewModelFilea A3DAsmModelFile containing the second group of A3DRiBrepModel.
[in]dToleranceInMMmaximum distance between two matching faces
[out]pOutputpointer to a A3DCompareOutputData that contains returned data. It has to be freed by calling again A3DCompareFacesInBrepModels with NULL as input A3DAsmModelFile pointers.
Returns
A3D_SUCCESS
A3D_INVALID_DATA_STRUCT_NULL
A3D_INVALID_DATA_STRUCT_SIZE
A3D_INVALID_ENTITY_TYPE
A3D_ERROR