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.