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