Navigation: Up, Table of Contents, Bibliography, Index, Title Page

Preface

CGAL is a Computational Geometry Algorithms Library written in C++, developed by a consortium consisting of ETH Zürich (Switzerland), Freie Universität Berlin (Germany), INRIA Sophia-Antipolis (France), Martin-Luther-Universität Halle-Wittenberg (Germany), Max-Planck Institut für Informatik, Saarbrücken (Germany), RISC Linz (Austria) Tel-Aviv University (Israel), and Utrecht University (The Netherlands). You find more information on the project on the CGAL home page .

Should you have any questions, comments, remarks or criticism concerning CGAL, please send a message to <cgal@cs.uu.nl>.

Editors

Hervé Brönnimann (Inria Sophia-Antipolis).
Stefan Schirra (Max-Planck Institut für Informatik).
Remco Veltkamp (Utrecht University).
Mariette Yvinec (Inria Sophia-Antipolis).

Authors

Andreas Fabri (Inria Sophia-Antipolis).
Geert-Jan Giezeman (Utrecht University).
Lutz Kettner (ETH Zürich).
Stefan Schirra (Max-Planck Institut für Informatik).
Sven Schönherr (Freie Universität Berlin).

Design and Implementation History

At a meeting at Utrecht University in January 1995, Olivier Devillers, Andreas Fabri, Wolfgang Freiseisen, Geert-Jan Giezeman, Mark Overmars, Stefan Schirra, Otfried Schwarzkopf (now Otfried Cheong), and Sven Schönherr discussed the foundations of the CGAL kernel. Many design and software engineering issues were addressed, e.g. naming conventions, coupling of classes (flat versus deep class hierarchy), memory allocation, programming conventions, modifiability of atomic objects, points and vectors, storing additional information, orthogonality of operations on the kernel objects, viewing non-constant-size objects like polygons as dynamic data structures (and hence not as part of the (innermost) kernel).

The people attending the meeting delegated the compilation of a draft specification to Stefan Schirra. The resulting draft specification was intentionally modeled on CGAL's precursors C++GAL and PLAGEO as well as on the geometric part of LEDA. The specification already featured coexistence of Cartesian and homogeneous representation of point/vector data and parameterization by number type(s). During the discussion of the draft a kernel design group was formed. The members of this group were Andreas Fabri, Geert-Jan Giezeman, Lutz Kettner, Stefan Schirra, and Sven Schönherr. The work of the kernel design group led to significant changes and improvements of the original design, e.g. the strong separation between points and vectors. Probably the most important enhancement was the design of a common superstructure for the previously uncoupled Cartesian and homogeneous representations. One can say, that the kernel was designed by this group.

A first version of the kernel was internally made available at the beginning of the CGAL-project (esprit ltr iv project number 21957). Since then many more people contributed to the evolution of the kernel through discussions on the CGAL mailing lists. The implementation based on Cartesian representation was (mostly) provided by Andreas Fabri, the homogeneous representation (mostly) by Stefan Schirra. Intersection and distance computations were implemented by Geert-Jan Giezeman. The kernel is now maintained by Hervé Brönnimann, Geert-Jan Giezeman, and Stefan Schirra.

Acknowledgement

This work was supported by the Graduiertenkolleg `Algorithmische Diskrete Mathematik', under grant DFG We 1265/2-1, and by ESPRIT IV Long Term Research Projects No. 21957 (CGAL) and No. 28155 (GALIA).


Next chapter: Introduction
Navigation: Up, Table of Contents, Bibliography, Index, Title Page
The CGAL Project. Wed, January 20, 1999.