Personal tools
You are here: Home CGAL at TAU The CGAL New User's Checklist
« January 2022 »
Log in

Forgot your password?

The CGAL New User's Checklist

This document is intended as a reference point for people who intend to use CGAL, the Computational Geometry Alogorithms Library. The document does not include genuine information of its own but rather serves as a repository for available sources of information. This is, therefore, neither a tutorial, nor a manual. New users should regard the items in this document as a checklist.

Guiding comments have been added along the list.

In the course of getting acquainted with CGAL, you may find out that there are subjects that deserve better coverage, or worse, have no coverage at all. Please send comments, corrections and updates to

Table of Contents


If you feel you need a concise description of CGAL, check out CGAL's homepage and FAQ section..
Interested in CGAL's past? Review the history of announcements on the What's New page. For those who look into the future, I suggest visiting the Work in Progress page.

Download and Installations

You can find out whether your platform is supported on the Supported Platforms page. Go ahead and download CGAL and then check if there are patches for the respective release.

For more information regarding installation on Windows visit Ophir's CGAL Installation Guide on Windows.


CGAL is a software library in C++. Good references and study books are

Bjarne Stroustrup, The C++ Programming Language, Addison-Wesley, 3rd edition, 1997.

Stanley B. Lippman and Josee Lajoie. C++ Primer. Addison-Wesley, 3rd edition, 1998


Generic Programming and the STL

CGAL follows the Generic Programming paradigm and uses the STL (The C++ Standard Template Library) extensively.

Part III of the book by Stroustrup gives a good intorduction the Standard Library of C++. Full References with good introductory material can be found in

Nicolai M. Josuttis "The C++ Standard Library: A Tutorial and Reference", Addison-Wesley, 1999.

Austern, M.H., "Generic Programming and the STL", Addison-Wesley, 1999.

The book by Josuttis covers non STL parts of the C++ standard library very well, e.g., how to implement your own stream. (And, yes, the STL is only a part of the standard library.)

I strongly recommend Part I in Austern's book, which is an introduction to the generic programming paradigm. After all, as much as STL is a wonderful example of the paradigm, generic programming, like object oriented prorgramming, has a broader extent than the one of C++.

An extensive online source is SGI's Standard Template Library Programmer's Guide
The document Use of STL in CGAL (which is part of the manuals) gives a simplified introduction to STL, in general, and to STL in CGAL, in particular. The document describes itself as simplified so if you want to implement your own STL-like functions and classes this is the wrong document for you.
CGAL has its own extension to STL, such as circulators, in-place-lists as well as other additions. The chapters STL Extensions for CGAL and Circulators in the Support Library part of the manuals presents these extensions. More advanced users should be familiar with the chapter Iterators and Circulators from the Developers' Manual.


A full-fledged Tutorial for CGAL is in progress. CGAL website includes the currently available Tutorial Documents.



CGAL's Manual is a pair of a user manual and a reference manual. The first presents the library and the functionality available. This is where you should look to find what CGAL offers you. The second, as its name suggests, provides the interface of the different parts and packages of CGAL. Once you know what you need, use the reference manual to understand how you can achieve it in terms of package interfaces: classes, functions and the rest are all there.

You can either find CGAL's Manual online, where you can download your HTML copy for offline browsing, a Postscript version or a PDF one from.

The Developers' Manual is a manual written for and by CGAL developers. This manual can serve you well. Many of its chapters are about general issues of design, programming and C++. The reason they were put in The Developers' Manual is they were all had a special significance in the making of CGAL.


Examples and Demos

CGAL's Demo Page provides demonstrations of the functionality of CGAL and its usability.

However, there are many more examples and demos you can use to learn about CGAL's functionality and how to use it. On the root directory of the CGAL installaion there are two subdirectories, namely examples and demo. Each of these is further divided into subdirectories that correspond to different packages with many examples and demos, even ones that do not appear in the manuals.


Mailing Lists

Okay, you started using CGAL and everything went well until you bumped into a question you did not find an answer to. It's time for CGAL's mailing list, cgal-discuss. This is a discussion forum for users to communicate with other CGAL users and CGAL developers. It is archived for a long time and you can visit past message without subscribing, although the mailing list appears contributive for those who use CGAL for more than a casual "Hello, world!" applications.

You can find all the mailing list details on CGAL's Mailing List page.


More Information

If I did not find a link to information you needed on this page, you can always try to do the CgooGALing, the CGAL site search using Google.


Shai Hirsch, Lutz Kettner
Document Actions