home *** CD-ROM | disk | FTP | other *** search
- [ 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
-