Provided by: libgle3-dev_3.1.0-7ubuntu2_amd64

#### NAME

```       gleSpiral - 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

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.

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   |
|  0    0    0   |

is the identity matrix -- i.e. the derivatives are zero, and therefore the integral  is  a
constant.

```

#### SEEALSO

```       gleLathe

```

#### AUTHOR

```       Linas Vepstas (linas@linas.org)
```