
                 GLE
                 ---

GLE is a library package of C functions that draw
extruded surfaces, including surfaces of revolution,
sweeps, tubes, polycones, polycylinders and helicoids.
Generically, the extruded surface is specified with a
2D polyline that is extruded along a 3D path.  A local
coordinate system allows for additional flexibility in 
the primitives drawn.  Extrusions may be texture mapped
in a variety of ways.  The GLE library generates 3D 
triangle coordinates, lighting normal vectors and 
texture coordinates as output. GLE uses the GL or 
OpenGL(R) API's to perform the actual rendering.
The demos use GLUT and require GLUT to be installed.

Obtaining OpenGL
----------------
OpenGL is available on most UNIX(R) workstations,
as well as OS/2(R) and Windows NT.  Contact your
workstation vendor for more information; the URL
http://www.sgi.com/Technology/openGL/opengl.html
points to a variety of information, including a 
list of OpenGL vendors. GLE also works with Mesa, 
a public-domain OpenGL-like API. Mesa can be found
at http://www.ssec.wisc.edu/~brianp/Mesa.html

Obtaining GLUT
--------------
The demos require that the GLUT windowing and 
utility library be installed.  GLUT can be obtained
at http://www.sgi.com/Technology/openGL/glut.html

Compiling
---------
GLE uses the standard GNU automake/autoconf build process,
and thus should be portable to essentially all computing 
platforms.  At the command line simply type 'configure'
to set things up for your CPU & operating system.  Then run
'make' to compile. Finally, cd to the examples directory, 
and run the script 'rundemo' to launch each of the demos 
in order (from most basic, to advanced).


configure flags:
--enable-lenient-tess
	If you have a tesselator that is happy with anything,
	including degenerate points, colinear segments, etc.
	then define this. Otherwise, don't specify this flag.
        Setting this flag provides a minor performance improvement.
	
	I beleive that the stock SGI tesselator is "lenient",
	despite explicit disclaimers in the documentation.
	(circa 1995).  
	
	The MesaGL tesselator is not at all forgiving of
	degenerate points.  It frequently crashes and/or
        hangs.  (circa 1997-2000)
	Do NOT set  --enable-lenient-tess

--disable-auto-texture
	Disable texture mapping code.  Disabling texture 
	mapping may provide a very minor performance improvement.

--enable-irisgl
        Compile for old IrisGL/GL-3.2 API.  This used to work, but
        hasn't been tested in a long time.

--enable-debug
	Will compile sources so printf routines will be called instead
        of OpenGL routines.  Warning: this will generate a *lot* of
        output!


More information about building, as well as this package, 
can be found in the directory "public_html".

Python, SWIG
------------
Python bindings for gle can be found in the /swig directory.
Be sure to read the readme.

Compiling for Windows NT
------------------------
To compile with Visual C++, just do the following:

cd src
cl -c -DWIN32  *.c
lib -out:libgle.lib *.obj


Running
-------
Some of the example programs will hang or crash when run on
MesaGL/Linux.  This is due to bugs in the MesaGL tesellator.

--------- the end ----------
