[ This package last updated Wed Dec 12 20:45:09 EST 1990. ]

README

This package contains the most up-to-date versions of the C source
files from the book "Graphics Gems" (Editor Andrew S. Glassner,
Academic Press, 1990 ISBM 0-12-286165-5, 833 pgs.).

All known bugs have been fixed, formatting problems have been
corrected, and enchancements to some of the original Gems have
been made.

Makefiles are provided that create stand-alone programs, many object
files, and "gemlib.a".  This Graphics Gem Library is created for
compilation-testing only, and is not intended to be a usable library
(although it may become so in the future).  Indeed, many of the Gems
will not compile or run properly without the addition of functions,
tables, and the like.  See the book and the Makefile for more details.

Each Gem is made available on an as-is basis; although 
considerable effort has been expended to check the programs 
as originally designed and their release in electronic form, 
the authors and the publisher make no guarantees or 
warrantees about the correctness of any of these programs or 
algorithms.  

The authors and the publisher hold no copyright restrictions 
on any of these files; this source code is public domain, and 
is freely available to the entire computer graphics community 
for study, use, and modification.  We do request that the 
comment at the top of each file, identifying the original 
author and its original publication in the book Graphics 
Gems, be retained in all programs that use these files.

An archive of the most current versions of all the Gems is maintained
on weedeater.math.yale.edu (130.132.23.17) and is available via
anonymous ftp in pub/GraphicsGems/src.

You are encouraged to submit bug fixes, skeleton programs, and the like
to Craig Kolb (kolb@yale.edu).

Andrew Glassner / Craig Kolb

================

The table below gives the correspondence between each source
file in this directory and the name of the Gem it implements.
Each implementation illustrates one way to realize the
techniques described by the accompanying Gem in the book. 
The files here contain only the source code for that 
realization.  For a more complete description of the 
algorithms and their applications see the Gems of the same 
name in the first 11 Chapters of the book.

---------- header files ----------
GraphicsGems.h         / Graphics Gems C Header File

----------    C code    ----------
2DClip/*               / Two-Dimensional Clipping: 
                         A Vector-Based Approach
AALines/*              / Rendering Anti-Aliased Lines
AAPolyScan.c           / Fast Anti-Aliasing Polygon
                         Scan Conversion
Albers.c               / Albers Equal-Area Conic Map
                         Projection
BinRec.c               / Recording Animation in Binary Order 
                         For Progressive Temporal Refinement  
BoundSphere.c          / An Efficient Bounding Sphere
BoxSphere.c            / A Simple Method for Box-Sphere 
                         Intersection Checking 
CircleRect.c           / Fast Circle-Rectangle Intersection
                         Checking 
ConcaveScan.c          / Concave Polygon Scan Conversion
DigitalLine.c          / Digital Line Drawing
Dissolve.c 	       / A Digital "Dissolve" Effect
DoubleLine.c           / Symmetric Double Step Line Algorithm
FastJitter.c           / Efficient Generation of Sampling
                         Jitter Using Look-up Tables
FitCurves.c            / An Algorithm for Automatically 
                         Fitting Digitized Curves
FixedTrig.c            / Fixed-Point Trigonometry with 
                         CORDIC Iterations
Forms.c                / Forms, Vectors, and Transforms
GGVecLib.c             / 2D And 3D Vector C Library   
HSLtoRGB.c             / A Fast HSL-to-RGB Transform
Hash3D.c               / 3D Grid Hashing Function
HypotApprox.c          / A Fast Approximation to 
                         the Hypotenuse
Interleave.c           / Bit Interleaving for Quad- 
                         or Octrees
Label.c                / Nice Numbers for Graph Labels
LineEdge.c             / Fast Line-Edge Intersections On 
                         A Uniform Grid   
MatrixInvert.c         / Matrix Inversion
MatrixOrtho.c          / Matrix Orthogonalization
MatrixPost.c           / Efficient Post-Concatenation of 
                         Transformation Matrices
Median.c               / Median Finding on a 3x3 Grid
NearestPoint.c         / Solving the 
                         Nearest-Point-On-Curve Problem
                         and
                         A Bezier Curve-Based Root-Finder
OrderDither.c          / Ordered Dithering
PixelInteger.c         / Proper Treatment of Pixels 
                         As Integers
PntOnLine.c            / A Fast 2D Point-On-Line Test
PolyScan/*             / Generic Convex Polygon 
                         Scan Conversion and Clipping
Quaternions.c          / Using Quaternions for Coding 
                         3D Transformations
RGBTo4Bits.c           / Mapping RGB Triples Onto Four Bits
RayBox.c               / Fast Ray-Box Intersection
RayPolygon.c           / An Efficient Ray-Polygon 
                         Intersection
Roots3And4.c           / Cubic and Quartic Roots
SeedFill.c             / A Seed Fill Algorithm
SquareRoot.c           / A High-Speed, Low-Precision 
                         Square Root
Sturm/*                / Using Sturm Sequences to Bracket 
                         Real Roots of Polynomial Equations
TransBox.c             / Transforming Axis-Aligned 
                         Bounding Boxes
TriPoints.c            / Generating Random Points 
                         In Triangles   
ViewTrans.c            / 3D Viewing and Rotation Using
                         Orthonormal Bases
