Eval on curves and surfaces

Types

A3DEAnalyticType

Fields

kA3DAnalyticNone

kA3DAnalyticCircle

kA3DAnalyticAlreadyCircle

kA3DAnalyticLine

kA3DAnalyticAlreadyLine

kA3DAnalyticCone

kA3DAnalyticAlreadyCone

kA3DAnalyticCylinder

kA3DAnalyticAlreadyCylinder

kA3DAnalyticPlane

kA3DAnalyticAlreadyPlane

kA3DAnalyticSphere

kA3DAnalyticAlreadySphere

kA3DAnalyticTorus

kA3DAnalyticAlreadyTorus

Functions

A3DStatus

A3DCrvGetInterval

A3DStatus

A3DCrvEvaluate

A3DStatus

A3DCrvEvaluatePointAndNormal

A3DStatus

A3DCrvIsPeriodic

A3DStatus

A3DSurfGetDomain

A3DStatus

A3DSurfEvaluate

A3DStatus

A3DSurfIsDegenerated

A3DStatus

A3DSurfIsPeriodic

A3DStatus

A3DSurfIsG1Continuous

A3DStatus

A3DGetCurveAsAnalytic

A3DStatus

A3DSimplifyCurveWithAnalytics

A3DStatus

A3DGetCurveAsAnalyticFromCoEdge

A3DStatus

A3DSimplifyCurveWithAnalyticsFromCoEdge

A3DStatus

A3DGetSurfaceAsAnalytic

A3DStatus

A3DSimplifySurfaceWithAnalytics

A3DStatus

A3DSurfEvaluateNormal

Detailed Description

group a3d_evaluate

Type Documentation

enum A3DEAnalyticType

Tells what kind of curve has been created by A3DGetCurveAsAnalytic.

Version

5.0

Values:

enumerator kA3DAnalyticNone

No Curve.

enumerator kA3DAnalyticCircle

Changed to circle.

enumerator kA3DAnalyticAlreadyCircle

Kept as a circle.

enumerator kA3DAnalyticLine

Changed to Line.

enumerator kA3DAnalyticAlreadyLine

Kept as a line.

enumerator kA3DAnalyticCone

Changed to Cone.

enumerator kA3DAnalyticAlreadyCone

Kept as a cone.

enumerator kA3DAnalyticCylinder

Changed to Cylinder.

enumerator kA3DAnalyticAlreadyCylinder

Kept as a cylinder.

enumerator kA3DAnalyticPlane

Changed to Plane.

enumerator kA3DAnalyticAlreadyPlane

Kept as a plane.

enumerator kA3DAnalyticSphere

Changed to Sphere.

enumerator kA3DAnalyticAlreadySphere

Kept as a sphere.

enumerator kA3DAnalyticTorus

Changed to Torus.

enumerator kA3DAnalyticAlreadyTorus

Kept as a torus.

Function Documentation

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:

           \li  With uiNbDerivatives = 0: Point
           \li  With uiNbDerivatives = 1: Point, First Derivative
           \li  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:

            \li  With uiNbDerivatives = 0: Point
            \li  With uiNbDerivatives = 1: Point, First Derivative
            \li  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:
 \li if uiNbDerivatives=0,
 pPointAndDerivatives size must be equal to 1

 \li 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 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