PK_OFFSET_sf_t   


struct PK_OFFSET_sf_s
    {
    PK_SURF_t       underlying_surface;  ---underlying surface
    double          offset_distance;     ---an offset distance
    };

typedef struct PK_OFFSET_sf_s PK_OFFSET_sf_t;



Specific Errors:
PK_ERROR_invalid_object         an invalid argument has been passed
PK_ERROR_su_self_intersect      the offset surface would self-intersect
PK_ERROR_cant_offset            underlying surface cannot be offset

Used in:

PK_OFFSET_ask
PK_OFFSET_create


An offset surface is defined to be the smooth, continuous (G1) surface obtained
from the underlying surface by adding to each point on it the unit normal
vector scaled by the 'offset_distance'.  The 'offset_distance' must be of
non-zero length.

The 'offset_distance' is positive in the normal direction as provided by
PK_SURF_eval_with_normal and negative in the opposite direction.

For swung, swept and parametric surface types, the surface created will be
checked for self-intersections caused by degeneracies on the underlying
surface.