gle(3GLE) GLE gle(3GLE)NAMEgle - an introduction to the GLE Tubing & Extrusions
Library
SYNOPSIS
#include <GL/tube.h>
DESCRIPTION
The GLE Tubing and Extrusion Library is a graphics appli
cation programming interface (API). The library consists
of a number of "C" language subroutines for drawing tubing
and extrusions. The library is distributed in source code
form, in a package that includes documentation, a VRML
proposal, Makefiles, and full source code and header
files. It uses the OpenGL (TM) programming API to perform
the actual drawing of the tubing and extrusions.
A "sweep" or "extrusion" is a 2D contour (polyline) that
is swept or extruded along a 3D path (polyline). For exam
ple, sweeping a circle along a straight line will generate
a cylinder. Sweeping a circle along a circular path will
generate a doughnut (torus).
The library also includes a set of utility routines for
drawing some of the more common extruded shapes: a poly
cylinder, a polycone, a generalized torus (circle swept
along a helical path), a "helix" (arbitrary contour swept
along a helical path) and a "lathe" (arbitrary contour
swept along a helical path, with torsion used to keep the
contour aligned).
The most general extrusion supported by this library
allows an arbitrary 2D contour to be swept around an arbi
trary 3D path. A set of normal vectors can be specified to
go along with the contour; the normal vectors determine
the appearance of the contour when lighting is turned on.
A set of colors and affine matrices can be specified to go
along with the 3D path. The colors are used to color
along the path. The affine matrices are used to operate
on the contour as it is swept along. If no affine matrices
are specified, the contour is extruded using the mathemat
ical concept of "parallel translation" or "Gaussian trans
lation". That is, the contour is moved (and drawn) along
the extrusion path in a "straight" manner. If there are
affine matrices, they are applied to the contour at each
extrusion segment before the segment is drawn.
The affine matrices allow work in a quasi-non-Euclidean
space. They essentially allow the contour to be distorted
as it is swept along. The allow the contour to be rotated,
translated and rescaled as it is drawn. For example, a
rescaling will turn a polycylinder into a poly-cone, since
the circle that is being extruded is scaled to a different
size at each extrusion vertex. A rotation allows the
GLE 3.6 1
gle(3GLE) GLE gle(3GLE)
contour to be spun around while it is being extruded, thus
for instance allowing drill-bit type shapes to be drawn. A
translation allows the appearance of shearing in real
space; that is, taking a contour and displacing it, with
out otherwise bending it. Note that the affines are 2x3
matrices, not 3x4 matrices, since they apply to the 2D
contour as it is being extruded.
WEB SITE
http://linas.org/gle/index.html
SEE ALSO
gleExtrusion, gleHelicoid, gleLathe, glePolyCone, glePoly
Cylinder, gleScrew, gleSetJoinStyle, gleSpiral, gleSu
perExtrusion, gleTextureMode, gleToroid, gleTwistExtru
sion, gleTwistExtrusion, gleSuperExtrusion
AUTHOR
Linas Vepstas (linas@fc.net)
GLE 3.6 2