geometry of two- and three-dimensional manifolds. Both programs were written using
the Microsoft Visual C++ compiler (and OpenGL) and run under Microsoft Windows
98 or later. Their source code and documentation are included on the CD. The ReadMe
file on the CD lists what all is on the CD and also contains instructions for how to use
what is there.
As I began to develop this book on geometric modeling, one concern obviously
was to do a good job in presenting a thorough overview of the practical side of the
subject, that is, the algorithms and their implementation details. However, there were
two other goals that were important from the very beginning. One was to thoroughly
explain the mathematics and the other, to make the material as self-contained as pos-
sible. In other words, pretty much every technical term or concept that is used should
be defined and explained. The reason for putting all the computer graphics–related
material into one book and all the mathematics into the other rather than inter-
weaving the material was to keep the structure of the implementation of a modeling
program as clear as possible. Furthermore, by separating out the mathematics it is
easier for readers to skip those mathematical topics that they are already familiar with
and concentrate on those with which they are not. In general, though, and in partic-
ular as far as instructors using this book are concerned, the intent is that the mate-
rial in the two books be covered in parallel. This is certainly how I always taught my
courses. An added motivation for the given division was that the applied part of geo-
metric modeling was often a moving target because, largely due to improvements in
hardware (faster CPUs, more memory, more hard disk space, better display devices),
the way that one deals with it is changing and will continue to change in the future.
This is in contrast to the supporting mathematics. There may be new mathematics
relevant to computer graphics in the future but it will be a long time before the math-
ematics I do discuss will lose its relevance. A lot of it, in fact, is only now starting
to be used as hardware becomes capable of dealing with computationally expensive
algorithms.
One property that sets this book apart from others on geometric modeling is
its breadth of coverage, but there is another. The combined books, this one and
[AgoM05], differ from other books on computer graphics or geometric modeling in
an important way. Some books concentrate on implementation and basically add the
relevant mathematics by tossing in appropriate formulas or mathematical algorithms.
Others concentrate on some of the mathematical aspects. I attempt to be as compre-
hensive on both the implementation and theory side. In [AgoM05] I provide a com-
plete reference for all the relevant mathematics, but not in a cookbook fashion. A
fundamental guiding principle was to present the mathematics in such a way that the
reader will see the motivation for it and understand it. I was aiming at those indi-
viduals who will want to take the subject further in the future and this is not possi-
ble without such understanding. Just learning a few formulas is not good enough. I
have always been frustrated by books that throw the reader some formulas without
explaining them. Furthermore, the more mathematics that one knows, the less likely
it is that one will end up reinventing something. There are instances (such as in the
case of the term “geometric continuity”) where unfamiliarity with what was known
caused the introduction of confusing or redundant terminology. The success or failure
of the two books should be judged on how much understanding of the mathematics
and algorithms the reader gets. In the case of this book by itself, it is a question of
whether or not the major topics were covered adequately. In any case, because I
vi Preface