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

Introduction

CGAL, the Computational Geometry Algorithms Library, is written in C++ and consists of three 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 coordinate representation and 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.

Organization

This part of the Reference Manual gives information that is relevant to all three parts of the library. Part 1 of this Reference Manual covers the kernel, part 2 the basic library, and part 3 the support library.

Additional documents accompanying the CGAL distribution are `The Use of STL and STL Extensions in CGAL', and `Getting Started with CGAL'. The former document 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. The latter document gives an introduction in CGAL programming for the novice user.


begin of advanced section
Some functionality is considered more advanced. Such functionality is described in sections like this one, bounded by horizontal brackets.
end of advanced section

Naming conventions

The use of representation classes not only avoids problems, it also makes all CGAL classes very uniform. They always consist of:

  1. The name space prefix CGAL_. This avoids name clashes. It will be dropped as soon as C++ compilers support the concept of name spaces as a feature of the programming language.

  2. The capitalized base name of the geometric object, such as Point, Segment, Triangle.

  3. An underscore followed by the dimension of the object, for example _2, _3 or _d.

  4. A representation class as parameter, which itself is parameterized with a number type, such as CGAL_Cartesian<double> or CGAL_Homogeneous<leda_integer>.


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