[ 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