PK_SPCURVE_sf_t   


struct PK_SPCURVE_sf_s
    {
    PK_SURF_t             surf;          --- surface
    PK_CURVE_t            curve;         --- curve
    };

typedef struct PK_SPCURVE_sf_s PK_SPCURVE_sf_t;



Specific Errors:
    PK_ERROR_unsuitable_entity      'curve' is not a BCURVE
    PK_ERROR_bad_dimension          'curve' is not 2D
    PK_ERROR_invalid_geometry       'curve' does not make a single valid
                                    spcurve when embedded in 'surf'  (SERIOUS)

Used in:

PK_SPCURVE_ask
PK_SPCURVE_create


An spcurve is the 3D curve resulting from embedding a 2D 'curve' in the
parameter space of a 'surface'.

The 'curve' must be a 2D BCURVE; that is it must either be a rational bcurve
with a vertex dimensionality of 3, or a non-rational bcurve with a vertex
dimensionality of 2.

An spcurve may start or end on a surface degeneracy or singularity or it may
lie entirely within a degeneracy.  An spcurve may not otherwise touch a
surface degeneracy.

An spcurve must be G1 continuous and, if periodic, must meet itself with G1
continuity.

Note: Functions that take this structure as input may extend the
supplied 'surf' so that it includes the entire area onto which the
spcurve reaches. In order to avoid modifying the 'surf' in this way,
you must ensure that any spcurve created does not leave the base range
of the 'surf'.