Computing is quickly making much of geometry intriguing not only for philosophers and mathematicians, but also for scientists and engineers. What is the core set of topics that a practitioner needs to study before embarking on the design and implementation of a geometric system in a specialized discipline? This book attempts to find the answer, and it is the first book to include geometric issues, implementation issues, base software layers, and geometry background. Every programmer tackling a geometric computing problem encounters design decisions that need to be solved. This book reviews the geometric theory then applies it in an attempt to find that elusive "right" design.