On the Design of CGAL, the Computational Geometry Algorithms Library
Abstract
CGAL is a Computational Geometry Algorithms Library written in C++. The goal is to make the large body of geometric algorithms developed inthe field of computational geometry available for industrial application. In this report we discuss the major design goals for CGAL, which are correctne- ss, flexibility, ease-of-use, efficiency, and robustness, and present our approach to reach these goals. Templates and the relatively new generic programming play a central role in the architecture of CGAL. We give a short introduction to generic programming in C++, compare it to the object-oriented programming paradigm, and present examples where both paradigms are used effectively in CGAL. Moreover, we give an overview on the current structure of the library and consider software engineering aspects in the CGAL-project.