 |
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
Used in:
PK_SPUN_ask
PK_SPUN_create
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.