Synopsis
PDX_MSGT gdx_ConvertCurveToNurbCurve(long option, MDA_PTR gdx_curve_ptr, int model, double tolerance, int degree, int max_iters, void *gdx_nc)
Purpose
Convert a GDX curve entity to a GDX NURB Curve entity
Description
Converts a GDX curve entity to a GDX NURB curve entity. The GDX curve can be any GDX curve including a GDX NURB curve. If the GDX curve is a GDX NURB curve, then the GDX NURB curve is converted to another GDX NURB curve based on the degree, tolerance, rationality, and option. If the GDX NURB Curve is a rational curve the curve will be converted to a non-rational GDX NURB Curve of the desired degree unless the option GDX_KEEPRAT is set. If the degree is equal to or greater then the GDX NURB Curve degree and the option GDX_KEEPRAT is set, the the conversion is exact, otherwise the conversion is an approximation to tolerance. The degree value only applies when a GDX NURB Curve is converted to another GDX NURB Curve. The value of degree in this case must be > 0.
The tolerance value applies to entites that are GDX spline and/or offset curve entities. The max_iters value applies to GDX offset curve entities that are approximated as GDX NURB curves and GDX NURB curves that are approximated as GDX NURB curves of lower degree and/or non-rational.
For all entities that have an exact conversion, the conversion is geometrically exact to the precision of the input data and to machine precision. Otherwise the conversion is an approximate conversion to a tolerance.
If a conversion error occurs any data created during the conversion is deleted and no GDX NURB Curve is created.
The GDX curve entity must be a valid GDX curve definition.
If the curve is a GDX_COMP_CURVE and it contains degenerate curves (as determined by a tolerance of MODEL_SPACE_PNT_TOL), the degenerate curves will be skipped during the conversion.
Input
option
GDX_COMMIT
Commit the GDX NURB curve to the database
GDX_KEEPRAT
Keep a rational NURBS curve rational for degree elevation or no degree change
GDX_KEEPDEGEN
Do not check for degenerate curves in composite
gdx_curve_ptr
The GDX curve entity database pointer
model
The model to create the GDX NURB curve in
tolerance
The tolerance for approximating the GDX NURB curve in the case of converting an offset curve, a NURB curve to non-rational or lower degree, or for removing knots when a parametric spline is converted
degree
The degree to approximate the GDX NURB curve when a GDX NURB is converted to another GDX NURB curve
max_iters
The maximum iteration count to test for convergence to the approximation tolerance
Output
gdx_nc
The GDX NURB curve entity structure or database pointer
Tolerances
MODEL_SPACE_PNT_TOL
PNT_PROJ_TOL
ANGLE_TOL
.fi
Return
GDX_NOERR
GDX_ENTITYNOTCURVE
Low level error return
.fi