This book is about graphics programming using Open GL. It presents both a programming course that empasaizes object-oriented thinking and a well-documented, versatile, and robust geometry library. All of the relevant geometry is covered in depth to give readers a good understanding of the background to this topic. Many of the most common intersection problems and measuring tasks (both planar and spatial) are covered. The authors discuss the creation of arbitrary geomrtic objects and the use of Boolean operations to create more general solid objects. As a result, all those looking for an in-depth introduction to graphics programming will find this a solid, hands-on text.