home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-06-16 | 7.2 KB | 153 lines | [TEXT/MPS ] |
-
- README
- Andrew Glassner / 14 August 1990
- This document looks best when viewed with a fixed-pitch font
- on a line width of at least 60 characters.
-
- This directory contains the 43 original C source files from
- the book "Graphics Gems" (editor, Andrew S. Glassner,
- published by Academic Press, Cambridge, MA, 1990,
- ISBN 0-12-286165-5, 833 pgs.).
-
- Many of the files depend on the header "GraphicsGems.h"
- (called "GraphicsGems.h" in this directory), and the Graphics
- Gems vector library (called "GGVectorLibrary.c" in this
- directory). You will also need the standard I/O library
- <stdio.h> and the math library <math.h> for many of the Gems.
-
- 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.
-
- These files are stored in a plain text format; you may
- download them without any special techniques (i.e. you need
- not enable binary transfer, or have a special formatter to
- read and use the code).
-
- The master ftp site for this source code is
- weedeater.math.yale.edu. If you suspect that a file at some
- site has been corrupted or changed, the originals will always
- be available there. Additional submissions (bug fixes,
- skeleton programs, auxiliary routines, etc.) may be directed
- to the site administrator, Craig Kolb (kolb@yale.edu). He
- will determine on a case-by-case basis if a particular
- submission should be included in this archive. If accepted,
- these routines will be made available in a companion
- directory.
-
- These files may be downloaded via anonymous ftp. Connect to
- weedeater@math.yale.edu using a communications program that
- understands ftp (File Transfer Protocol). When prompted for
- a login name use 'anonymous' (in this paragraph, all phrases
- in single quotes are strings you type, without the quotes).
- For your password use your own last name. When logged in,
- type 'cd pub/GraphicsGems/src' . To look at the contents type
- 'ls' or 'dir'. To download a file, type 'get filename', where
- filename is the explicit name of the file you wish to
- retreive. To download many files with a single command, type
- 'mget metaname' (here metaname refers to a name using the
- standard UNIX metacharacter * to represent any sequence of
- characters; e.g. 'mget *.h *.c' will retreive all files that
- end in .h or .c). Normally mget will prompt you to confirm
- each file; if you wish to turn prompting off type 'prompt'
- before the mget command. Additional files (such as big fixes
- and helpful test and skeleton routines) may be available in
- companion directories; to see if any such directories exist
- type 'cd ..' to rise one directory in the hierarchy, and type
- 'ls' to see all subdirectories under GraphicsGems.
-
- ================
-
- 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 ----------
- 2DClipping.c / Two-Dimensional Clipping:
- A Vector-Based Approach
- 2DPointOnLine.c / A Fast 2D Point-On-Line Test
- 3DHashingFunction.c / 3D Grid Hashing Function
- 3DViewAndRotation.c / 3D Viewing and Rotation Using
- Orthonormal Bases
- AAPolyScan.c / Fast Anti-Aliasing Polygon
- Scan Conversion
- AlbersProjection.c / Albers Equal-Area Conic Map
- Projection
- AntiAliasedLines.c / Rendering Anti-Aliased Lines
- BitInterleaving.c / Bit Interleaving for Quad-
- or Octrees
- BoundingSphere.c / An Efficient Bounding Sphere
- BoxSphereIntersect.c / A Simple Method for Box-Sphere
- Intersection Checking
- CircleRectIntersect.c / Fast Circle-Rectangle Intersection
- Checking
- ConcavePolygonScan.c / Concave Polygon Scan Conversion
- CubicAndQuarticRoots.c / Cubic and Quartic Roots
- DigitalDissolve.c / A Digital "Dissolve" Effect
- DigitalLineDrawing.c / Digital Line Drawing
- EfficientJitter.c / Efficient Generation of Sampling
- Jitter Using Look-up Tables
- FitDigitizedCurves.c / An Algorithm for Automatically
- Fitting Digitized Curves
- FixedPointTrig.c / Fixed-Point Trigonometry with
- CORDIC Iterations
- FormsAndVectors.c / Forms, Vectors, and Transforms
- GenericPolygonScan.c / Generic Convex Polygon
- Scan Conversion and Clipping
- GGVectorLibrary.c / 2D And 3D Vector C Library
- HSLtoRGB.c / A Fast HSL-to-RGB Transform
- HypotenuseApprox.c / A Fast Approximation to
- the Hypotenuse
- LineEdgeIntersect.c / Fast Line-Edge Intersections On
- A Uniform Grid
- MatrixInversion.c / Matrix Inversion
- MatrixOrthogonalize.c / Matrix Orthogonalization
- MatrixPostConcat.c / Efficient Post-Concatenation of
- Transformation Matrices
- MedianFinding.c / Median Finding on a 3x3 Grid
- NearestPointOnCurve.c / Solving the
- Nearest-Point-On-Curve Problem
- and
- A Bezier Curve-Based Root-Finder
- NumbersForGraphcs.c / Nice Numbers for Graph Labels
- OrderedDithering.c / Ordered Dithering
- PixelsAsIntegers.c / Proper Treatment of Pixels
- As Integers
- PointsInTriangle.c / Generating Random Points
- In Triangles
- Quaternions.c / Using Quaternions for Coding
- 3D Transformations
- RayBoxIntersect.c / Fast Ray-Box Intersection
- RayPolygonIntersect.c / An Efficient Ray-Polygon
- Intersection
- RecordingAnimation.c / Recording Animation in Binary Order
- For Progressive Temporal Refinement
- RGBTriplesTo4Bits.c / Mapping RGB Triples Onto Four Bits
- SeedFill.c / A Seed Fill Algorithm
- SquareRoot.c / A High-Speed, Low-Precision
- Square Root
- SturmSequences.c / Using Sturm Sequences to Bracket
- Real Roots of Polynomial Equations
- SymmetricDoubleStep.c / Symmetric Double Step Line Algorithm
- TransformingBoxes.c / Transforming Axis-Aligned
- Bounding Boxes
-