PK_BCURVE_create_fitted_o_t   

struct PK_BCURVE_create_fitted_o_s
{
int                 o_t_version;                 --- option structure version
                                                 ---  number
PK_CURVE_general_t  curve;                       --- curve to be fit
PK_INTERVAL_t       range;                       --- parameter range for
                                                 --- B-curves (0,1)
double              tolerance;                   --- distance tolerance
                                                 ---  (1.0e-6)
double              angular_tolerance;           --- angular tolerance (0.0)
int                 n_interpolation_parms;       --- number of parameters at
                                                 --- which to interpolate
                                                 ---  input curve (0)
double             *interpolation_parms;         --- parameters at which to
                                                 --- interpolate input curve
                                                 --- (NULL)
PK_LOGICAL_t        preserve_parameterisation;   --- whether or not the fitted
                                                 --- B-curve should have the
                                                 --- same parameterisation as
                                                 --- the input curve
                                                 --- (PK_LOGICAL_true)
};

typedef struct PK_BCURVE_create_fitted_o_s
               PK_BCURVE_create_fitted_o_t;



Holds optional controls for the fitting of a general curve by a B-curve.


Specific Errors:
PK_ERROR_bad_interval   the range provided is invalid
PK_ERROR_bad_tolerance  one of the tolerances provided is invalid
PK_ERROR_bad_parameter  an interpolation parameter is invalid

Used in:

PK_BCURVE_create_fitted



This structure contains the following fields:

    'curve'                     the curve to be fit. The default value for this
                                field is
                                `curve.type' = PK_CURVE_general_curve_c
                                `curve.curve.parasolid_curve'  = PK_ENTITY_null

    'range'                     the parameter range for the resultant B-curve.
                                The B-curve will exactly fit the sample points
                                at the start and end of this range.

    'tolerance'                 the distance tolerance to within which the
                                B-curve will fit the sample data.

    'angular_tolerance'         if non-zero, the maximum angle between the
                                tangents of the B-curve and the tangents from
                                the sample data. Note that this will require
                                the calculation of first derivatives at all
                                sample parameters during the fit.

    'n_interpolation_parms'     the number of 'interpolation_parms' supplied.

    'interpolation_parms'       a strictly increasing array of length
                                'n_interpolation_parms' of parameter values
                                lying within 'range'.  The resultant B-curve
                                will exactly pass through the sample points
                                at these values.
    'preserve_parameterisation' This parameter determines whether or not the
                                resulting B-curve will have the same
                                parameterisation as the input curve or just
                                the same shape.
                                If the value is PK_LOGICAL_true, then if the
                                fitted B-curve is evaluated at a parameter t,
                                the evaluated point will be within fitting
                                tolerance of the point that results when the
                                input curve is evaluated at t.
                                If the value is PK_LOGICAL_false, then if the
                                fitted B-curve is evaluated at a parameter t,
                                the evaluated point will be within fitting
                                tolerance of some point on the input curve,
                                but not necessarily the point that results
                                when the input curve is evaluated at t.