 |
PK_BCURVE_spin |
|
PK_ERROR_code_t PK_BCURVE_spin
(
--- received arguments ---
PK_BCURVE_t bcurve, --- bcurve
const PK_AXIS1_sf_t *axis, --- axis around which to spin bcurve
double angle, --- angle of spin
--- returned arguments ---
PK_BSURF_t *const bsurf --- resulting bsurf
)
This function spins a 'bcurve' into a 'bsurf'.
Specific Errors:
PK_ERROR_bad_angle 'angle' == 0 or |'angle'| > 2*Pi
The 'bcurve' is swung around the given 'axis' through the given 'angle'.
'angle' must not be greater than 2pi or less than -2pi.
'angle' must not be zero.
Returned surface 'bsurf':
. The 'bcurve' lies along the v = 0 parameter line of the surface.
. The surface is rational.
. The u order of the surface is the order of the 'bcurve'.
. The v order of the surface is 4.
. The surface will be periodic in u if the 'bcurve' is periodic.
. The surface will be periodic in v if 'angle' is 2pi or -2pi.
. For positive angles the curve will be spun anticlockwise when viewed down
the axis ( ie. the right hand screw rule applied to the axis gives the spin
direction ) and the surface normal will be in the direction of the cross
product of the curve tangent and the spin direction.
In general this procedure may construct a self-intersecting surface.