Eval on curves and surfaces
Types
Fields
Functions
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:
With uiNbDerivatives = 0: Point
With uiNbDerivatives = 1: Point, First Derivative
With uiNbDerivatives = 2: Point, First Derivative, Second Derivative
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
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:
- 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:
- 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:
- 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