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