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


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.