 |
PK_BCURVE_remove_knots_o_t |
|
struct PK_BCURVE_remove_knots_o_s
{
int o_t_version; --- options structure version
PK_LOGICAL_t have_tolerance; --- whether tolerance is set
--- (PK_LOGICAL_false)
double tolerance; --- tolerance for knot removal
int n_knot_indices; --- number of knot indices (0)
const int *knot_indices; --- indices of knots to be removed (NULL)
const int *remove_multiplicities;
--- number of times to remove knots (NULL)
};
typedef struct PK_BCURVE_remove_knots_o_s PK_BCURVE_remove_knots_o_t;
This options structure defines optional controls for removing knots
from a b-curve.
Used in:
PK_BCURVE_remove_knots
It contains the following options:
'have_tolerance' Whether a tolerance has been provided. If this
is PK_LOGICAL_true, then the b-curve will not be
changed by more than 'tolerance'. If this is
PK_LOGICAL_false, then the b-curve will not be
changed by more than the session linear
precision, and 'tolerance' will be ignored.
(PK_LOGICAL_false)
'tolerance' The tolerance for the knot removal.
'n_knot_indices' The number of knot indices provided. If this is
zero, knot removal will be attempted on all knots
in the b-curve. If this is non-zero, both
'knot_indices' and 'remove_multiplicities' must be
provided, and removal will only be attempted
on the specified knots. (0)
'knot_indices' An array of length 'n_knot_indices'. All values
must lie in the interval zero to one less than
the number of distinct knots in the b-curve. (NULL)
'remove_multiplicities' An array of length 'n_knot_indices'. This
option controls how many times removal is
attempted on any knot. A value of 0 indicates
that a knot should be removed as many times
as possible, otherwise each value must be no
greater than the multiplicity of the corresponding
knot. The knot will then be removed that number of
times, if possible. (NULL)