Synopsis
PDX_MSGT gdx_CurveBasedSurfToAnalytic(long option, int model, MDA_PTR gdx_surf_ptr, double circle_tol, double angle_tol, MDA_PTR *gdx_analytic_ptr, PDX_BOOL *trimmed, double u_trim[2], double v_trim[2], PDX_BOOL *in_normal)
Purpose
Determine if a curve-based surface is analytic
Description
This routine determines if a GDX curve-based surface (EXT_SURF, RULED_SURF or REV_SURF) is one of the analytic surface types (PLANE, CYLINDER, CONE, SPHERE or TORUS), in that order of preference. If it is, then a surface of that type is created. If the surface is a partial analytic (trimmed), the trimming bounds are returned. For the CYLINDER, CONE, SPHERE and TORUS, a flag is returned indicating discrepancy in the surface normals (inward pointing normal on the curve-based surface).
Input
option
Not used.
model
The GDX model for entity creation.
gdx_surf_ptr
Database pointer of the curve-based surface.
circle_tol
A model space tolerance used to determine if a curve is circular. A number of candidate radii are computed and compared. If the deviation of the smallest radius from the largest radius is less than or equal to circle_tol, then the curve is considered circular. MODEL_SPACE_PNT_TOL (or smaller) should be used for zero tolerance.
angle_tol
An angle tolerance (radians). Should be 0.00001 (or smaller) for zero tolerance; 0.001 (or larger) if approximate analytics are to be detected.
Output
gdx_analytic_ptr
Database pointer of the created analytic surface if the surface is one of those types, otherwise, MDA_NULL_PTR.
trimmed
Flag, indicating if the analytic surface must be trimmed, i.e. in order to obtain the correct surface, u_trim and v_trim must be used to form a GDX_RECT_TRIM_SURF: PDX_TRUE : must be trimmed PDX_FALSE : no trimming, surface is full analytic
u_trim
u trim bounds. Returned only if trimmed = PDX_TRUE.
v_trim
v trim bounds. Returned only if trimmed = PDX_TRUE.
in_normal
Flag, used only if surface is a CYLINDER, CONE, SPHERE or TORUS: PDX_TRUE : original surface has inward pointing normal PDX_FALSE : original surface does not have inward pointing normal
Tolerances
MODEL_SPACE_PNT_TOL
ANGLE_TOL
.fi
Return
GDX_NOERR
GDX_BADDATA
Low level error return
.fi