PK_SPUN_sf_t   



struct PK_SPUN_sf_s
    {
    PK_CURVE_t            curve;         --- curve to spin
    PK_AXIS1_sf_t         axis;          --- axis defn for spin
    };

typedef struct PK_SPUN_sf_s PK_SPUN_sf_t;




Specific Errors:
    PK_ERROR_unsuitable_entity      curve is not of allowed class
    PK_ERROR_su_self_intersect      surface would be self intersecting


This standard form represents a spun surface, that is, the surface obtained by
spinning the given curve round the given axis.

The curve must be of one of the following classes:

    PK_CLASS_line
    PK_CLASS_circle
    PK_CLASS_ellipse
    PK_CLASS_bcurve

The surface is parameterised as:

    C = curve
    P = axis.location
    A = axis.axis

    Z(u) = P + (( C(u) - P ).A)A
    R(u) = C(u) - Z(u)

    S(u,v) = Z(u) + R(u)cos(v) + A X R(u)sin(v)

The range for u is the parameter range of curve, and the range of v is
[0, 2Pi]

The curve may not cross the axis, but it may just touch the axis at either end.