Eval on curves and surfaces

Enumerations

enum  A3DEAnalyticType {
  kA3DAnalyticNone,
  kA3DAnalyticCircle,
  kA3DAnalyticAlreadyCircle,
  kA3DAnalyticLine,
  kA3DAnalyticAlreadyLine,
  kA3DAnalyticCone,
  kA3DAnalyticAlreadyCone,
  kA3DAnalyticCylinder,
  kA3DAnalyticAlreadyCylinder,
  kA3DAnalyticPlane,
  kA3DAnalyticAlreadyPlane,
  kA3DAnalyticSphere,
  kA3DAnalyticAlreadySphere,
  kA3DAnalyticTorus,
  kA3DAnalyticAlreadyTorus
}
 Tells what kind of curve has been created by A3DGetCurveAsAnalytic. More...
 

Functions

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 A3DCrvGetInterval (const A3DCrvBase *pCrv, A3DIntervalData *pInterval)
 Function to get a curve parametric interval. More...
 
A3DStatus A3DCrvIsPeriodic (const A3DCrvBase *pCrv, A3DBool *pbIsPeriodic)
 Function to determine if a curve is periodic. 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 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 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 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 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. 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 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 A3DSurfEvaluateNormal (const A3DSurfBase *pSurf, const A3DVector2dData *pUVParameter, A3DVector3dData *pNormal)
 Function to evaluate a normal on a surface. More...
 
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. More...
 
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. More...
 
A3DStatus A3DSurfIsPeriodic (const A3DSurfBase *pSrf, A3DBool *pbUIsPeriodic, A3DBool *pbVIsPeriodic)
 Function to determine if a surface is periodic. More...
 

Detailed Description

Enumeration Type Documentation

◆ A3DEAnalyticType

Tells what kind of curve has been created by A3DGetCurveAsAnalytic.

Version
5.0
Enumerator
kA3DAnalyticNone 

No Curve

kA3DAnalyticCircle 

Changed to circle

kA3DAnalyticAlreadyCircle 

Kept as a circle

kA3DAnalyticLine 

Changed to Line

kA3DAnalyticAlreadyLine 

Kept as a line

kA3DAnalyticCone 

Changed to Cone

kA3DAnalyticAlreadyCone 

Kept as a cone

kA3DAnalyticCylinder 

Changed to Cylinder

kA3DAnalyticAlreadyCylinder 

Kept as a cylinder

kA3DAnalyticPlane 

Changed to Plane

kA3DAnalyticAlreadyPlane 

Kept as a plane

kA3DAnalyticSphere 

Changed to Sphere

kA3DAnalyticAlreadySphere 

Kept as a sphere

kA3DAnalyticTorus 

Changed to Torus

kA3DAnalyticAlreadyTorus 

Kept as a torus

Function Documentation

◆ A3DCrvGetInterval()

A3DStatus A3DCrvGetInterval ( const A3DCrvBase pCrv,
A3DIntervalData pInterval 
)

Function to get a curve parametric interval.

Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DCrvEvaluate()

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
.

Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DCrvEvaluatePointAndNormal()

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
.

Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DCrvIsPeriodic()

A3DStatus A3DCrvIsPeriodic ( const A3DCrvBase pCrv,
A3DBool pbIsPeriodic 
)

Function to determine if a curve is periodic.

Version
10.1
Parameters
[in]pCrvThe input curve.
[out]bIsPeriodicThe returned value.
Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DSrfGetDomain()

A3DStatus A3DSrfGetDomain ( const A3DSurfBase pSrf,
A3DDomainData pDomain 
)

Function to get a surface parametric domain.

Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DSurfEvaluate()

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 in case of success or an error code
Return values

◆ A3DSurfIsDegenerated()

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
[in]pSurfThe input surface.
[in]pUVParameterThe coordinates of the point.
[in]dToleranceThe tolerance of the test.
[out]pbIsDegeneratedThe returned value.
[out]pbUDirectionThe direction of the degeneracy if a degeneracy is detected (true = U direction, and false = V direction).
Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DSurfIsPeriodic()

A3DStatus A3DSurfIsPeriodic ( const A3DSurfBase pSrf,
A3DBool pbUIsPeriodic,
A3DBool pbVIsPeriodic 
)

Function to determine if a surface is periodic.

Version
10.1
Parameters
[in]pSurfThe input surface.
[out]bUIsPeriodicThe returned value for u direction.
[out]bVIsPeriodicThe returned value for u direction.
Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DSurfIsG1Continuous()

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
[in]pSurfThe input surface.
[in]pUVParameterThe coordinates of the point.
[in]dAngleToleranceThe derivative angle tolerance.
[out]pbUG1ContinuousThe returned value for u direction.
[out]pbVG1ContinuousThe returned value for v direction.
Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DGetCurveAsAnalytic()

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
Deprecated:
Use A3DSimplifyCurveWithAnalytics
Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DSimplifyCurveWithAnalytics()

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 in case of success or an error code
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DGetCurveAsAnalyticFromCoEdge()

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
Deprecated:
use A3DSimplifyCurveWithAnalyticsFromCoEdge
Returns
A3D_SUCCESS in case of success or an error code
Return values

◆ A3DSimplifyCurveWithAnalyticsFromCoEdge()

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
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 in case of success or an error code
Return values

◆ A3DGetSurfaceAsAnalytic()

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
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 in case of success or an error code
Return values

◆ A3DSimplifySurfaceWithAnalytics()

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 in case of success or an error code
Return values

◆ A3DSurfEvaluateNormal()

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 in case of success or an error code
Return values