\cgal, the {\em Computational Geometry Algorithms Library}, is written in 
\CC\ and consists of three major parts.

The first part is the kernel, which consists of constant-size non-modifiable 
geometric primitive objects and operations on these objects. 
The objects are represented both as stand-alone classes that are
parameterized by a representation class, which specifies
the underlying number types used for calculations and as members of the
kernel classes, which allows for more flexibility and adaptability of the 
kernel.

The second part is a collection of basic geometric data structures and
algorithms, which are parameterized by traits classes that define the 
interface between the data structure or algorithm and the primitives they use.
In many cases, the kernel classes provided in \cgal\ can be used as traits
classes for these data structures and algorithms.
The collection of basic geometric algorithms and data structures
currently includes polygons, half-edge data structures, polyhedral surfaces, 
topological maps, planar maps, arrangements of curves, triangulations, 
convex hulls, alpha shapes, optimisation algorithms, dynamic
point sets for geometric queries, and multidimensional search trees.

The third part of the library consists of non-geometric support
facilities, such as support for number types, STL extensions for
\cgal, handles, circulators, protected access to internal
representations, geometric object generators, timers, I/O stream
operators and other stream support including PostScript, colors,
windows, and visualization tools GeoWin, Geomview and a Qt widget for
2D \cgal\ objects.

Additional documents accompanying the \cgal\ distribution are the
`Installation Guide' and `The Use of \stl\ and \stl\ Extensions in
\cgal', which gives a manual style introduction to \stl\ constructs
such as iterators and containers, as well an extension, called
circulator, used in many places in \cgal. We also recommend the
standard text book by Austern~\cite{cgal:a-gps-98} for the \stl\ and
its notion of \emph{concepts} and \emph{models}.

% and `Getting Started with \cgal'
% The third document gives an introduction in
% \cgal programming for the novice user.

Other resources for \cgal\ are the tutorials at
\path|http://www.cgal.org/Tutorials/| and the user support page at
\path|www.cgal.org|.

