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.