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.