Downside: we copy points at each comparison, which is terrible! No noticeable changes when profiling the construction of a triangulation. We need this copy because of Lazy kernel: despite construct_point_3 having const Point_3& construct_point_3_object()(const Point_3&) the Lazy kernel can return some copies. Other solutions that were not used: -- Distinguish the Ouput type of Unary_function_to_property map depending on the type of Kernel (ugly and not safe) -- Use Weighted_point_mappers traits (but that blood will not be on my hands)
The Computational Geometry Algorithms Library (CGAL) is a C++ library that aims to provide easy access to efficient and reliable algorithms in computational geometry.
CGAL releases
The primary vector of distribution of CGAL are sources tarballs, released twice a year, announced on the web site of CGAL. The sources distributed that way can be built using the CGAL installation manual.
CGAL Git repository layout
The Git repository of CGAL has a different layout from release tarballs. It
contains a CMakeLists.txt file that serves as anchor for building, and a
set of subfolders, so called packages. Most packages
implement a data structure or an algorithm for CGAL (e.g., Convex_hull_2,
or Triangulation_3); however some packages serve special needs:
Installation- meta-files and CMake-supportMaintenance- infrastructural supportCore,CGALimageIO,Qt_widget,GraphicsView- component librariesScripts- scripts to simplify developer's and user's workTestsuite- infrastructure for testsuiteDocumentation- infrastructure for CGAL's manualSTL_Extension- extensions to the standard template library
Compilation and installation
The compilation and installation of CGAL from a sources tarball is described in the CGAL installation manual and in the file INSTALL.md that is at the root of any sources tarball.
CGAL developers, however, usually compile CGAL directly from a local Git repository. That kind of compilation is called a branch build, and is described in the file INSTALL.md that is at the root of the Git repository.
License
See the file LICENSE.md.
