PK_BSURF_create_fitted_o_t   

struct PK_BSURF_create_fitted_o_s
{
int                o_t_version;             --- option structure version number
PK_SURF_general_t  surf;                    --- surface to be fitted
PK_INTERVAL_t      u_range;                 --- u parameter range for B-surface
                                            --- (0,1)
PK_INTERVAL_t      v_range;                 --- v parameter range for B-surface
                                            --- (0,1)
double             tolerance;               --- distance tolerance (1.0e-5)
double             angular_tolerance;       --- angular tolerance (0.0)
int                n_u_interpolation_parms; --- number of parameters at which
                                            --- to interpolate input surface
                                            --- (0)
const double      *u_interpolation_parms;   --- u parameters at which to
                                            --- interpolate input surface
                                            --- (NULL)
int                n_v_interpolation_parms; --- number of parameters at which
                                            --- to interpolate input surface
                                            --- (0)
const double      *v_interpolation_parms;   --- v parameters at which to
                                            --- interpolate input surface
                                            --- (NULL)
};

typedef struct PK_BSURF_create_fitted_o_s
               PK_BSURF_create_fitted_o_t;



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


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

Used in:

PK_BSURF_create_fitted



This structure contains the following fields:

    'surf'                    the surface to be fitted. The default value
                              for this field is
                              `surf.type' = PK_SURF_general_surf_c
                              `surf.surf.parasolid_surf'  = PK_ENTITY_null


    'u_range'                 the u parameter range for the resultant
                              B-surface. The B-surface will exactly fit the
                              sample points at the start and end of this range.
                              (0,1)

    'v_range'                 the v parameter range for the resultant
                              B-surface. The B-surface will exactly fit the
                              sample points at the start and end of this range.
                              (0,1)

    'tolerance'               the distance tolerance to within which the
                              B-surface will fit the sample data. (1.0e-5)

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

    'n_u_interpolation_parms' the number of 'u_interpolation_parms' supplied.
                              (0)

    'u_interpolation_parms'   a strictly increasing array of length
                              'n_u_interpolation_parms' of parameter values
                              lying within 'u_range'.  The resultant B-surfaces
                              will exactly pass through the sample points at
                              these values. If the array is not strictly
                              increasing, or if one of the elements lies
                              outside of 'u_range', an error will be returned.
                              (NULL)

    'n_v_interpolation_parms' the number of 'v_interpolation_parms' supplied.
                              (0)


    'v_interpolation_parms'   a strictly increasing array of length
                              'n_v_interpolation_parms' of parameter values
                              lying within 'v_range'.  The resultant B-surfaces
                              will exactly pass through the sample points at
                              these values. If the array is not strictly
                              increasing, or if one of the elements lies
                              outside of 'v_range', an error will be returned.
                              (NULL)

    If 'u_interpolation_parms' and 'v_interpolation_parms' are specified, they
    define a grid of points such that the resulting B-surface matches the input
    surface exactly at these points.