From: erich@eye.com (Eric Haines)
Newsgroups: comp.graphics
Subject: Graphics Gems errata
Date: Tue, 8 Sep 92 14:53:57 GMT
Organization: 3D/EYE, Inc.  Ithaca, NY

Here's something I compiled last night while watching mindless TV.  It should
soon be available on wuarchive.wustl.edu in the graphics books errata section
(/graphics/graphics/books).

Eric


Errata to _Graphics Gems_, first edition, edited by Andrew Glassner
(glassner.pa@xerox.com), Academic Press 1990.  Code available online in
princeton.edu:pub/Graphics/GraphicsGems/Gems.

compiled by Eric Haines (erich@eye.com) from author and reader contributions

date:  9/12/92

-----

Errors in the text:

p. 3, bottom:  The equation "N . P + c = 0" is better expressed as
    "N . P - c = 0" in order to match Figure 1a.

p. 5, V2 Perpendicular:  change "N <- (-Vx, Vy)" to "N <- (-Vy, Vx)"

p. 5, V2 Reflect:  change "N <- (-Vy, -Vx)" to "N <- (-Vx, -Vy)"

p. 105, last sentence of first paragraph:  "ajacent" to "adjacent".

p. 365, last line:  "Kajia" to "Kajiya".

p. 395, first paragraph:  change "discussed by Haines (1989)" to "discussed by
    Haines in Glassner (1989)".

p. 448, last sentence of second paragraph:  change "and now nearly as simple"
    to "and not nearly as simple".

p. 463, second to last line:  change "then alpha <- alpha + pi/2" to "then
    alpha <- pi - alpha".

p. 495, equation 5:  this should have an equal sign (=) before the
    plus-or-minus (+/-).

p. 499, middle of page:  change "and i,j,K" to "and i,j,k".

p. 516, last paragraph:  a reader notes an additional reference which
    predates Berger and Salmon & Slater, namely "The Viewing Transformation,"
    Technical Memo. no. 84, Alvy Ray Smith, Computer Graphics Project,
    Lucasfilm, June 24, 1983 (rev. May 4, 1984).

p. 809:  the author of "Approximation of Sweep Surfaces by Tensor Product
    B-Splines" is M. (not J.) Bloomenthal.  The author is correctly
    attributed in the text (page 569).

-----

The following are errors in the code listings (corrected in the online code at
princeton.edu:pub/Graphics/GraphicsGems/Gems).

Serious errors (ones your compiler cannot or may not catch):

p. 632:  procedure declarations for routines in the "2D and 2D Vector C
	 Library" (next pages) are missing from "GraphicsGems.h", e.g.
		
		double V2SquaredLength() ;
		double V2Length() ;
		Vector2 *V2Negate() ;
		...

p. 640:  V3MulPointByMatrix() does not work.  A separate local Point3 (e.g.
    "Point3 q ;") should be used in place of "p" for assignment and then
    passed back.

p. 649, top:  add "#include <math.h>"

p. 663, line 45:  change first "+" to "="; should read
		      "VnextLeft = (Vleft=VnextLeft) + 1;"

p. 714, line 20:  the last "1" in "if (i + 1 < l * 1)" should be an "l"

p. 748, line 22:  change "negetive" to "negative"

p. 756, line 15:  add space around "=" in "unsigned int *fi=&f;", as some
		      compilers think "=&" means "&="

p. 766, line 25:  change "det = det4x4( out );" to "det = det4x4( in );"
        throughout:  change "matrix4" to "Matrix4"


Syntax errors (ones your compiler will catch):

p. 650, line 1:  bad end-of comment; delete "/"

p. 651, throughout:  Can't use "const" as a variable name, as it is a reserved
			 word in ANSI C.  Use "liconst" instead.

p. 660, line 11:  header missing end of comment "*/"

p. 662, line 13:  change "SYBYRES" to "SUBYRES"
    	line 16:  bad space after "MODRES"
    	line 42:  change "XRmax" to "xRmax"
p. 665, line 15:  missing semicolon after "int area"
    	line 27:  change "O" to "0" in "if (partialArea>O)"
p. 666, line 13:  change "O" to "0" in "rightMask = O;"

p. 671, line 35:  missing "{" at end of "while (y<ly && y<ry)"
p. 676, end:  change "void pixelproc();" to "static void pixelproc();"

p. 696, line 8:  add '#include "GraphicsGems.h"'
p. 700, line 5:  add '#include "GraphicsGems.h"'
p. 706, end:  add '#include "GraphicsGems.h"'
p. 709, line 23:  missing semicolon at end of "up = (up) ? FALSE : TRUE"

p. 713, line 26:  change ":" to ";" in "char **argv:"

p. 715, top:  pseudo-code at head of file (to advance from one element to the
		      next) should be commented out.
    	line 14:  missing declaration "int randmasks[32];"

p. 727, line 11:  remove ")" in "static double bigC,..." line
p. 728, line 26:  change "con_const" to "cone_const" in
		      "bigC = m1sq + con_const * q1"
	last line:  add a "}" to end albers_project procedure

p. 730:  missing inclusion of GraphicsGems.h.

p. 736, line 20:  change "O" to "0" in "for (i=O;"

p. 757, line 4:  change "{" to "[" in "sqrttab{"

p. 774, line 2:  missing ";" at end of "long *argx, *argy"

p. 775:  P, Q, and M need to be declared as externs

p. 780, line 18:  bad start of comment for "/ re-parameterization"

p. 785, line 1:  bad start-of-comment

-----

The following are typographical errors in the comments:

p. 687, line 3:  "plottted" to "plotted"

p. 701, line 26:  change "interscetion" to "intersection"

p. 728, line 10:  "latitute" to "latitude"
p. 729, line 8:  "degress" to "degrees"

p. 724, line 38:  "seperated" to "separated"
p. 725, lines 7-9:  "componant" to "component"

p. 730, line 17:  "minium" to "minimum"

p. 752, line 2:  "positve" to "positive"

p. 760, line 5:  "interger" to "integer"
p. 761, line 4:  "preceed" to "precede"

p. 766, throughout (5 times):  "determinent" to "determinant"

p. 781, lines 7,23:  "demoninator" to "denominator"

-----

Addenda:  There is additional code for Kelvin Thompson's "Rendering
Anti-Aliased Lines" gem in the online distribution of the code.