gleSpiral(3GLE) GLE gleSpiral(3GLE)NAMEgleSpiral - Sweep an arbitrary contour along a helical
path.
SYNTAX
void gleSpiral (int ncp,
gleDouble contour[][2],
gleDouble cont_normal[][2],
gleDouble up[3],
gleDouble startRadius, /* spiral starts in x-y plane */
gleDouble drdTheta, /* change in radius per revolution */
gleDouble startZ, /* starting z value */
gleDouble dzdTheta, /* change in Z per revolution */
gleDouble startXform[2][3], /* starting contour affine xform */
gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */
gleDouble startTheta, /* start angle in x-y plane */
gleDouble sweepTheta); /* degrees to spiral around */
ARGUMENTS
ncp number of contour points
contour 2D contour
cont_normal
2D contour normals
up up vector for contour
startRadius
spiral starts in x-y plane
drdTheta change in radius per revolution
startZ starting z value
dzdTheta change in Z per revolution
startXform
starting contour affine transformation
dXformdTheta
tangent change xform per revolution
startTheta
start angle in x-y plane
sweepTheta
degrees to spiral around
DESCRIPTION
Sweep an arbitrary contour along a helical path.
The axis of the helix lies along the modeling coordinate
z-axis.
GLE 3.6 1
gleSpiral(3GLE) GLE gleSpiral(3GLE)
An affine transform can be applied as the contour is
swept. For most ordinary usage, the affines should be
given as NULL.
The "startXform[][]" is an affine matrix applied to the
contour to deform the contour. Thus, "startXform" of the
form
| cos sin 0 |
| -sin cos 0 |
will rotate the contour (in the plane of the contour),
while
| 1 0 tx |
| 0 1 ty |
will translate the contour, and
| sx 0 0 |
| 0 sy 0 |
scales along the two axes of the contour. In particular,
note that
| 1 0 0 |
| 0 1 0 |
is the identity matrix.
The "dXformdTheta[][]" is a differential affine matrix
that is integrated while the contour is extruded. Note
that this affine matrix lives in the tangent space, and so
it should have the form of a generator. Thus, dx/dt's of
the form
| 0 r 0 |
| -r 0 0 |
rotate the the contour as it is extruded (r == 0 implies
no rotation, r == 2*PI implies that the contour is rotated
once, etc.), while
| 0 0 tx |
| 0 0 ty |
translates the contour, and
| sx 0 0 |
| 0 sy 0 |
scales it. In particular, note that
| 0 0 0 |
GLE 3.6 2
gleSpiral(3GLE) GLE gleSpiral(3GLE)
| 0 0 0 |
is the identity matrix -- i.e. the derivatives are zero,
and therefore the integral is a constant.
SEE ALSO
gleLathe
AUTHOR
Linas Vepstas (linas@fc.net)
GLE 3.6 3