\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 parameterized by a representation class, which specifies
the underlying number types used for calculations.
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.
The third part consists of non-geometric support facilities, such as 
`circulators', random sources, I/O support for debugging and for interfacing 
\cgal\ to various visualization tools.  
