home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Photo CD Demo 1
/
Demo.bin
/
gems
/
graphics
/
readme.ori
< prev
next >
Wrap
Text File
|
1992-04-09
|
7KB
|
153 lines
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