 |
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).