PK_SURF_make_bsurf_res_t   

struct PK_SURF_make_bsurf_res_s
    {
    PK_SURF_make_bsurf_t         status;
    PK_BSURF_t                   bsurf;
    double                       achieved_tol;
    PK_achieved_cont_t           achieved_cont;
    };

typedef struct PK_SURF_make_bsurf_res_s PK_SURF_make_bsurf_res_t;



This structure holds the result of the conversion of a surface into a
B-surface.

Used in:

PK_SURF_make_bsurf_array


It has the following fields:

'status':            Token indicating whether the conversion to B-surface was
                     successful or not and degree of success or reason for
                     failure.

                     Tokens that indicate success are:
                     PK_SURF_make_bsurf_exact_c,
                     PK_SURF_make_bsurf_approx_c,
                     PK_SURF_make_bsurf_loose_c.

                     Tokens that indicate failure are:
                     PK_SURF_make_bsurf_tol_tight_c,
                     PK_SURF_make_bsurf_uvbox_bad_c,
                     PK_SURF_make_bsurf_failed_c.

'bsurf':             Resultant B-surface. This may be PK_ENTITY_null
                     if the function failed to approximate the surface.

'achieved_tol':      If 'status' is PK_SURF_make_bsurf_loose_c, this will be
                     set to an upper bound for the maximum distance between
                     the input surf and the output bsurf. Otherwise it
                     should be ignored.

'achieved_cont':     If 'force_continuity' is set to
                     PK_force_continuity_prefer_c, then it will be set to
                     indicate whether the preferred continuity has
                     been achieved. For other values of 'force_continuity',
                     it will always be set to PK_achieved_cont_yes_c.

'status' is set to PK_SURF_make_bsurf_exact_c if the B-surface is an exact
representation of the input surface. Otherwise it will be set
to PK_SURF_make_bsurf_approx_c if the resultant B-surface has been made within
the supplied 'tolerance', or PK_SURF_make_bsurf_loose_c if the resultant
B-surface deviates by more than 'tolerance'. If the 'status' is
PK_SURF_make_bsurf_loose_c, then 'achieved_tol' will be set to an upper bound
for the maximum distance between surface and B-surface. Otherwise it should be
ignored. If the function is unable to approximate the surface because the
'tolerance' is too small, then the corresponding returned status will be
PK_SURF_make_bsurf_tol_tight_c and corresponding B-surface will be
PK_ENTITY_null. A looser tolerance may allow the function to successfully
create a B-surface. 'status' is set to PK_SURF_make_bsurf_uvbox_bad_c if
the supplied uvbox cannot be used to make a valid surface (this situation
typically occurs when the UV box is larger than that of the input surface).