CGAL, the Computational Geometry Algorithms Library, is written in C++ 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.
This part of the reference manual covers the basic library. 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.
Some functionality of a number of classes and algorithms is considered more
advanced, for example because integrity of the underlying data structure
is not guaranteed.
In such cases the programmer is responsible for integrity.
These functionalities are described in sections like this one, bounded by
horizontal brackets.