 |
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.