Do you spend too much time creating the building blocks of your graphics applications or finding and correcting errors? *Geometric Tools for Computer Graphics* is an extensive, conveniently organized collection of proven solutions to fundamental problems that you’d rather not solve over and over again, including building primitives, distance calculation, approximation, containment, decomposition, intersection determination, separation, and more.

If you have a mathematics degree, this book will save you time and trouble. If you don’t, it will help you achieve things you may feel are out of your reach. Inside, each problem is clearly stated and diagrammed, and the fully detailed solutions are presented in easy-to-understand pseudocode. You also get the mathematics and geometry background needed to make optimal use of the solutions, as well as an abundance of reference material contained in a series of appendices.

* Filled with robust, thoroughly tested solutions that will save you time and help you avoid costly errors.

* Covers problems relevant for both 2D and 3D graphics programming.

* Presents each problem and solution in stand-alone form allowing you the option of reading only those entries that matter to you.

* Provides the math and geometry background you need to understand the solutions and put them to work.

* Clearly diagrams each problem and presents solutions in easy-to-understand pseudocode.

* Resources associated with the book are available at the companion Web site www.mkp.com/gtcg.Reinventing the wheel is a terrible waste of time, yet legions of computer programmers do exactly that every day. *Geometric Tools for Computer Graphics* gives the working graphics programmer a vast collection of programming examples, complex code snippets explained and ready to use. Each chapter is filled with more than just code examples–the explanations needed to understand why these examples work the way they do are given by authors with experience both in writing and in the field.

There is nothing here for the casual graphics programmer and everything for the serious 2-D and 3-D programmer. Thirteen chapters, three appendices, and a three-column index that spans over 30 pages cover everything about computer-graphic geometry, from the basics of using matrices and linear systems to intersecting 3-D objects.

The appendices alone are worth the price: “Numerical Methods,” “Trigonometry,” and “Basic Formulas for Geometric Primitives” are treasures filled with hard-core examples of the kind that can be put to use right out of the box. Less experienced programmers will find these to be invaluable references, but then there’s the rest of the book–nearly 1,000 pages loaded with examples and theory, page after page of information written in a clear, concise voice.

Any hard-core graphics programmer will appreciate the value of the examples presented here, as well as the discussion of theory. After all, there’s no need to waste time experimenting with code once the theory is known. *Geometric Tools* represents the best of both worlds: discussion of theory and code examples built on and culled from years of experience. *–Mike Caputo*

warning: first editionFirst of all, I commend the authors on a timely and valuable book. However, a word of caution: this book is full of errors. Every couple of pages I am noting in the margin: did they mean A instead of B? Having encountered so many errors, I am reading every formula with scepticism. The errors are serious enough that I have trouble recommending the book without reservations, but I know of no suitable alternative. I can only hope that the errors will be weeded out of future editions.Excellent information, marginal executionFirst, the good: -Once you learn everything in this book, you’ll should be ~well~ prepared to start implementing a powerful 3D engine. -The three-chapter introduction to linear algebra is, quite frankly, one of the most intuitive I’ve ever read. Mind you, I wouldn’t suggest that anyone studying linear algebra go out of their way to buy this book (since those three chapters are a small fraction of the book). However, anyone getting their first taste of linear algebra from this book should consider themselves fortunate to have such a lucid, concrete introduction to the subject. (Granted, you’ll need some ‘mathematical maturity’ to understand it, but it should be easier to grasp than your average linear algebra text.)And then, the bad: -Errors galore. Fortunately, you can get a list of corrections from the book’s web site, though if you print it out you may be a bit put off by the fact that it’s some 25 pages. (To be fair, however, it has all corrections listed chronologically in order they were identified, then listed again by page number, so there’s really only about 12 pages of corrections.) If you happen to have the second edition of this book, then you’ll only have about 5 pages of corrections. -Some of those corrections pretty much just scrap an explanation from the book and start over….which is fine, aside from having to read things like “Cross(Dot(u,v) * w))” which isn’t particularly intuitive, and the fact that some of these new explanations seem to need corrections of their own (like those that appear to confuse w-parallel with w-perp, and so on). -It seems a bit arrogant of the authors to make the occasional appeal to things that the “astute reader” may have noticed. Such appeals seem like a subtle insult to the “less than astute reader,” which, in any public forum, will only serve to alienate.All in all, if you’re willing to put up with errors and have your “astuteness” challenged, you can learn tremendous things from this book.