PK_BCURVE_fit_eval_f_t   


typedef PK_ERROR_code_t(*PK_BCURVE_fit_eval_f_t)
(
--- received arguements ---

double          parameter,          --- parameter at which to evaluate
PK_LOGICAL_t    calculate_deriv,    --- whether the evaluator should return
                                    --- the 1st derivative
PK_POINTER_t    external_data,      --- external application data

--- returned arguements ---

PK_VECTOR_t     *const point,       --- sample point at parameter
double          *const weight,      --- weight of this point
PK_VECTOR_t     *const deriv        --- 1st derivative at parameter

);



This is the type definition for the external evaluator functions expected
by PK_BCURVE_create_by_fitting.  The functions themselves are to be
provided by the application.



Given a parameter a function of type PK_BCURVE_fit_eval_f_t should return
a 3-space vector in point.

If calculate_deriv is PK_LOGICAL_true then deriv should be the 1st
derivative vector at the point.

If the bcurve is to be rational, weight should contain the weight value of
the point.  Note that if the bcurve will not be rational the value of the
weight is not examined.

The external_data should be supplied to Parasolid via the
PK_BCURVE_fit_eval_data_t structure.

Functions of this type should return PK_ERROR_no_errors on success.  Any
other return value will be taken to be an evaluation failure and the return
arguments will not be examined.  In these circumstances, a value of
PK_BCURVE_fit_eval_failure_c will be returned in the corresponding array
entry of the status field of the PK_BCURVE_fit_fault_t fault structure
returned by PK_BCURVE_create_by_fitting.