NAME¶
gle - an introduction to the GLE Tubing & Extrusions Library
SYNOPSIS¶
#include <GL/gle.h>
DESCRIPTION¶
The GLE Tubing and Extrusion Library is a graphics application 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 example, 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 polycylinder, 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 arbitrary 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 mathematical concept of "parallel translation"
or "Gaussian translation". 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 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, without 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, glePolyCylinder, gleScrew,
gleSetJoinStyle, gleSpiral, gleSuperExtrusion, gleTextureMode, gleToroid,
gleTwistExtrusion, gleTwistExtrusion, gleSuperExtrusion
AUTHOR¶
Linas Vepstas (linas@linas.org)