1gle(3GLE) GLE gle(3GLE)
2
3
4
6 gle - an introduction to the GLE Tubing & Extrusions Library
7
9 #include <GL/gle.h>
10
12 The GLE Tubing and Extrusion Library is a graphics application program‐
13 ming interface (API). The library consists of a number of "C" language
14 subroutines for drawing tubing and extrusions. The library is distrib‐
15 uted in source code form, in a package that includes documentation, a
16 VRML proposal, Makefiles, and full source code and header files. It
17 uses the OpenGL (TM) programming API to perform the actual drawing of
18 the tubing and extrusions.
19
20 A "sweep" or "extrusion" is a 2D contour (polyline) that is swept or
21 extruded along a 3D path (polyline). For example, sweeping a circle
22 along a straight line will generate a cylinder. Sweeping a circle
23 along a circular path will generate a doughnut (torus).
24
25 The library also includes a set of utility routines for drawing some of
26 the more common extruded shapes: a polycylinder, a polycone, a general‐
27 ized torus (circle swept along a helical path), a "helix" (arbitrary
28 contour swept along a helical path) and a "lathe" (arbitrary contour
29 swept along a helical path, with torsion used to keep the contour
30 aligned).
31
32 The most general extrusion supported by this library allows an arbi‐
33 trary 2D contour to be swept around an arbitrary 3D path. A set of nor‐
34 mal vectors can be specified to go along with the contour; the normal
35 vectors determine the appearance of the contour when lighting is turned
36 on. A set of colors and affine matrices can be specified to go along
37 with the 3D path. The colors are used to color along the path. The
38 affine matrices are used to operate on the contour as it is swept
39 along. If no affine matrices are specified, the contour is extruded
40 using the mathematical concept of "parallel translation" or "Gaussian
41 translation". That is, the contour is moved (and drawn) along the
42 extrusion path in a "straight" manner. If there are affine matrices,
43 they are applied to the contour at each extrusion segment before the
44 segment is drawn.
45
46 The affine matrices allow work in a quasi-non-Euclidean space. They
47 essentially allow the contour to be distorted as it is swept along. The
48 allow the contour to be rotated, translated and rescaled as it is
49 drawn. For example, a rescaling will turn a polycylinder into a poly-
50 cone, since the circle that is being extruded is scaled to a different
51 size at each extrusion vertex. A rotation allows the contour to be spun
52 around while it is being extruded, thus for instance allowing drill-bit
53 type shapes to be drawn. A translation allows the appearance of shear‐
54 ing in real space; that is, taking a contour and displacing it, without
55 otherwise bending it. Note that the affines are 2x3 matrices, not 3x4
56 matrices, since they apply to the 2D contour as it is being extruded.
57
59 http://linas.org/gle/index.html
60
62 gleExtrusion, gleHelicoid, gleLathe, glePolyCone, glePolyCylinder, gle‐
63 Screw, gleSetJoinStyle, gleSpiral, gleSuperExtrusion, gleTextureMode,
64 gleToroid, gleTwistExtrusion, gleTwistExtrusion, gleSuperExtrusion
65
67 Linas Vepstas (linas@linas.org)
68
69
70
71GLE 3.0 gle(3GLE)