Data Structures | Functions
A3DSDKAvancedTools.h File Reference

Header file for surface entities. More...

Data Structures

struct  A3DFaceUVPointInsideManagerData
 A3DFaceUVPointInsideManager structure. More...
 
struct  A3DProjectedPointCloudData
 A3DProjectedPointCloudData structure. More...
 
struct  A3DProjectPointCloudManagerDataFromRI
 A3DProjectPointCloudManagerDataFromRI sructure. More...
 
struct  A3DPlanarSectionData
 A3DPlanarSectionData structure. More...
 
struct  A3DCompareInputData
 A3DCompareInputData structure that contains input data of A3DCompareFaces. More...
 
struct  A3DCompareOutputData
 A3DCompareOutputData structure that contains result data of A3DCompareFaces or A3DCompareFacesInBrepModels. More...
 
struct  A3DMultiPlanarSectionData
 
struct  A3DHLRViewPlaneData
 A3DHLRViewPlaneData structure. More...
 
struct  A3DHLRCurveData
 A3DHLRCurveData structure. More...
 
struct  A3DHLRRepresentationItemData
 A3DHLRCurveData structure. More...
 

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 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
. 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 A3DComputeOrthoHLROnRepresentationItems (A3DUns32 uiNbRepItems, A3DRiRepresentationItem const **apRepItems, A3DDouble **apOptPlacements, A3DHLRViewPlaneData const *psHLRViewPlaneData, A3DUns32 *uiNumberHLRData, A3DHLRRepresentationItemData **pppHLRData)
 Function to compute Hidden Line Removal on a set of A3DRiRepresentationItem. More...
 
A3DStatus A3DComputeOrthoHLROnModelFile (A3DAsmModelFile const *pModelFile, A3DMkpView const *pOptMrkRView, A3DHLRViewPlaneData const *psHLRViewPlaneData, A3DUns32 *pNumberHLRData, A3DHLRRepresentationItemData **pppHLRData)
 Function to compute Hidden Line Removal on a A3DAsmModelFile. More...
 
#define A3D_HLR_TYPE_UNKNOWN   0
 
#define A3D_HLR_TYPE_EDGE   1
 
#define A3D_HLR_TYPE_SILHOUETTE   2
 
#define A3D_HLR_TYPE_SECTION   3
 
#define A3D_HLR_TYPE_SILHOUETTE_SECTION   4
 
enum  A3DEAnalyticType
 Tells what kind of curve has been created by A3DGetCurveAsAnalytic. 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 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 A3DSurfEvaluateNormal (const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DVector3dData *pNormal)
 Function to evaluate a normal on a 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 A3DProjectPointCloudManagerCreateFromRI (A3DProjectPointCloudManagerDataFromRI *pData, A3DProjectPointCloudManager **pManager)
 Create a Point Cloud Manager from a set of A3DRiRepresentationItem with matrix placement. More...
 
A3DStatus A3DProjectPointCloudManagerCreateFromModelFile (A3DAsmModelFile *pModelFile, A3DProjectPointCloudManager **pManager)
 Create a Point Cloud Manager from a A3DAsmModelFile. More...
 
A3DStatus A3DProjectPointCloudManagerDelete (A3DProjectPointCloudManager *pManager)
 Deletes an A3DProjectPointCloudManager. More...
 
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. 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...
 
A3DStatus A3DCutWithMultiPlanarSectionOnRepresentationItems (A3DUns32 uiNbRepItems, A3DRiRepresentationItem const **apRepItems, A3DDouble **m_apOptPlacements, A3DMultiPlanarSectionData const *psSectionParametersData, A3DUns32 *pNumberOfRepItems, A3DRiRepresentationItem ***pppRIRepresentationItem, A3DRiRepresentationItem ***pppRIPlanarSections)
 Function to compute the result of a section with serveral plane on a set of A3DRiRepresentationItem. More...
 
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 serveral plane on a A3DAsmModelFile. More...
 

Detailed Description

Header file for surface entities.

Author
Tech Soft 3D
Version
8.2
Date
June 2015
Copyright (c) 2015 by Tech Soft 3D, LLC. All rights reserved.