PK_BCURVE_fit_chain_t   


struct PK_BCURVE_fit_chain_s
    {
    int              n_curves_in_chain; --- number of curves in this chain (0)
    PK_CURVE_t      *curves_in_chain;   --- curves in the chain (NULL)
    PK_INTERVAL_t   *curve_intervals;   --- parameter intervals for each
                                        --- chain-curve (NULL)
    double          *fit_parameters;    --- parameters for bcurve at ends
                                        --- of each chain-curve (NULL)
    };

typedef struct PK_BCURVE_fit_chain_s PK_BCURVE_fit_chain_t;



This structure contains the data to define a "chain" for the chain-of-curves
evaluator function.



This structure contains the following fields:

n_curves_in_chain The number of curves in the chain.

curves_in_chain   An ordered array of n_curves_in_chain curves.

curve_intervals   A parallel array of parameter intervals on the curves
                    denoting the sections of the curves that make up the
                    chain.  Together with the curves_in_chain field this
                    specifies a chain of trimmed curves.

fit_parameters    A strictly increasing array of n_curves_in_chain + 1
                    doubles representing the parameters for the fitting
                    bcurves at the end points of the trimmed curves.  If
                    the curve-chain is periodic then the last value of
                    fit_parameters should be equal to the first plus the
                    required period.


A chain is a connected set of trimmed curves defined by an ordered array of
curves and a matching array of parameter intervals.  The curves should meet
each other with G1 continuity at the points specified by the parameter
intervals.  Each curve should be oriented so that its parameter increases
in the forward direction along the chain.

The parameterisation of the fitted bcurve with respect to the chain
is defined by the fit_parameters field.  The fit-parameters specify the
parameter values taken by the fitted bcurve at the ends of each of the trimmed
curves.  Evaluation at the intermediate parameters on the bcurve is by cubic
interpolation of the chain-curve parameterisation between the fit-parameters.
If a set of break-parameters is provided to PK_BCURVE_create_by_fitting then
each of these break-parameters must lie at the end of a trimmed curve and the
corresponding fit-parameter must equal the break-parameter.