cgal/Kernel_23/doc_tex/Kernel_23/preface.tex

110 lines
5.0 KiB
TeX

\lcTex{\section*{Preface}}
\lcHtml{\section{Preface}}
\cgal\ is a {\em Computational Geometry Algorithms Library} written in \CC,
developed by a consortium consisting of
\ccAnchor{http://www.inf.ethz.ch/}{ETH Z\"urich} (Switzerland),
\ccAnchor{http://www.inf.fu-berlin.de/}{Freie Universit{\"a}t Berlin} (Germany),
\ccAnchor{http://www-sop.inria.fr/}{{\sc Inria} Sophia-Antipolis} (France),
\ccAnchor{http://www.informatik.uni-halle.de/}{Martin-Luther-Universit{\"a}t
Halle-Wittenberg} (Germany),
\ccAnchor{http://www.mpi-sb.mpg.de/}{Max-Planck Institut f{\"u}r Informatik},
Saarbr\"ucken (Germany),
\ccAnchor{http://info.risc.uni-linz.ac.at/}{{\sc Risc}} Linz (Austria)
\ccAnchor{http://www.math.tau.ac.il/}{Tel-Aviv University} (Israel), and
\ccAnchor{http://www.cs.uu.nl/}{Utrecht University} (The Netherlands).
You can find more information on the project on the
\ccAnchor{http://www.cgal.org/}{\cgal\ home page}
\ccTexHtml{at URL {\tt http://www.cgal.org}}{}.
Should you have any questions, comments, remarks or criticism concerning
\cgal, please see the user support information web page on our web site.
\subsection*{Editorial Committee}
Andreas Fabri ({\sc Geometry Factory}) \\
Bernd G\"artner (ETH Z\"urich) \\
Efi Fogel (Tel-Aviv University) \\
Michael Hoffmann (ETH Z\"urich) \\
Lutz Kettner (\ccHtmlNoLinksFrom{Max-Planck Institut f\"ur Informatik})\\
Sylvain Pion ({\sc Inria} Sophia-Antipolis)\\
Monique Teillaud ({\sc Inria} Sophia-Antipolis)\\
Remco Veltkamp (Utrecht University)\\
Ron Wein (Tel-Aviv University)\\
Mariette Yvinec ({\sc Inria} Sophia-Antipolis)\\
\subsection*{Authors}
Herv\'e Br\"onnimann ({\sc Inria} Sophia-Antipolis). \\
Andreas Fabri ({\sc Inria} Sophia-Antipolis).\\
Geert-Jan Giezeman (Utrecht University).\\
Philippe Guigue ({\sc Inria} Sophia-Antipolis).\\
Susan Hert (\ccHtmlNoLinksFrom{Max-Planck Institut f\"ur Informatik}).\\
Michael Hoffmann (ETH Z\"urich).\\
Lutz Kettner (ETH Z\"urich).\\
Sylvain Pion ({\sc Inria} Sophia-Antipolis). \\
Stefan Schirra (\ccHtmlNoLinksFrom{Max-Planck Institut f\"ur Informatik}).\\
Sven Sch\"onherr (Freie Universit{\"a}t Berlin).
\subsection*{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\"onherr
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, mutability 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 \protocgal\ and \plageo\ as well as on the geometric part of \leda.
The specification already featured coexistence of
\ccHtmlNoLinksFrom{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\"onherr.
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
\ccHtmlNoLinksFrom{Cartesian} and
homogeneous representations. One can say, that the kernel was designed
by this group.
The kernel was later revised based on suggestions by Herv\'e Br\"onnimann,
Bernd G\"artner, Michael Hoffmann, and Lutz Kettner.
A first version of the kernel was internally made available at the beginning
of the \cgal-project ({\sc 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
\ccHtmlNoLinksFrom{Cartesian} representation was (initially) provided
by Andreas Fabri, the homogeneous representation (initially) by Stefan Schirra.
Intersection and distance computations were implemented by Geert-Jan Giezeman.
Further work has been done by Susan Hert on the overall maintenance of the
kernel.
Philippe Guigue has provided efficient intersection tests for 3D triangles.
Andreas Fabri, Michael Hoffmann and Sylvain Pion have improved the support for
the extensibility and adaptability of the kernel.
The kernel is now maintained by Sylvain Pion.
\subsection*{Acknowledgment}
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).