gleSpiral
Prev | GLE | Next

## Name

gleSpiral — Sweep an arbitrary contour along a helical path.

## C Specification

`void `gleSpiral`` | `(` | `int `ncp`, gleDouble `contour`[][2], gleDouble `cont_normal`[][2], gleDouble `up`[3], gleDouble `startRadius`, gleDouble `drdTheta`, gleDouble `startZ`, gleDouble `dzdTheta`, gleDouble `startXform`[2][3], gleDouble `dXformdTheta`[2][3], gleDouble `startTheta`, gleDouble `sweepTheta`);`

## Python Specification

``gleSpiral`` | `(` | ``contour`[][2], `cont_normal`[][2], `up`[3], `startRadius`, `drdTheta`, `startZ`, `dzdTheta`, `startXform`[2][3], `dXformdTheta`[2][3], `startTheta`, `sweepTheta`) → `None``

## Parameters

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

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 π 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.

## See Also

gleLathe

## Author

Linas Vepstas

Prev | Up | Next
gleSetNumSides | Home | gleSuperExtrusion