The Computational Geometry Algorithms Library (CGAL) is an open source software
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
of
computational geometry algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
s. While primarily written in
C++,
Scilab bindings and bindings generated with
SWIG (supporting
Python and
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
for now) are also available.
The software is available under dual licensing scheme. When used for other open source software, it is available under
open source license
An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial compa ...
s (
LGPL or
GPL depending on the component). In other cases commercial license may be purchased, under different options for academic/research and industrial customers.
History
The CGAL project was founded in 1996, as a consortium of eight research institutions in Europe and Israel:
Utrecht University
Utrecht University (UU; nl, Universiteit Utrecht, formerly ''Rijksuniversiteit Utrecht'') is a public research university in Utrecht, Netherlands. Established , it is one of the oldest universities in the Netherlands. In 2018, it had an enrollm ...
,
ETH Zurich
(colloquially)
, former_name = eidgenössische polytechnische Schule
, image = ETHZ.JPG
, image_size =
, established =
, type = Public
, budget = CHF 1.896 billion (2021)
, rector = Günther Dissertori
, president = Joël Mesot
, a ...
,
Free University of Berlin
The Free University of Berlin (, often abbreviated as FU Berlin or simply FU) is a public university, public research university in Berlin, Germany. It is consistently ranked among Germany's best universities, with particular strengths in poli ...
,
INRIA Sophia Antipolis
(wisdom), gr, (Ἀντίπολις, antipolis) ("opposite city" from its position on the opposite side of the Var estuary from Nice, also former name of Antibes, part of the technology park)
, postal_code = 06220 (Vallauris), 06250 (Mo ...
,
Martin-Luther-University Halle-Wittenberg
Martin Luther University of Halle-Wittenberg (german: Martin-Luther-Universität Halle-Wittenberg), also referred to as MLU, is a public, research-oriented university in the cities of Halle and Wittenberg and the largest and oldest university i ...
,
Max Planck Institute for Informatics Saarbrücken
Saarbrücken (; french: link=no, Sarrebruck ; Rhine Franconian: ''Saarbrigge'' ; lb, Saarbrécken ; lat, Saravipons, lit=The Bridge(s) across the Saar river) is the capital and largest city of the state of Saarland, Germany. Saarbrücken is ...
,
Johannes Kepler University Linz
The Johannes Kepler University Linz (German: ''Johannes Kepler Universität Linz'', short: ''JKU'') is a public institution of higher education in Austria. It is located in Linz, the capital of Upper Austria. It offers bachelor's, master's, d ...
, and
Tel-Aviv University
Tel Aviv University (TAU) ( he, אוּנִיבֶרְסִיטַת תֵּל אָבִיב, ''Universitat Tel Aviv'') is a public research university in Tel Aviv, Israel. With over 30,000 students, it is the largest university in the country. Loc ...
. The original funding for the project came from the
ESPRIT
Esprit or L'Esprit may refer to:
* the French for Spirit; as a loanword:
** Enthusiasm, intense interest or motivation
** Morale, motivation and readiness
** Geist "mind/spirit; intellect"
* Esprit (name), a given name and surname
* ''Esprit'' (m ...
project of the
European Union
The European Union (EU) is a supranational political and economic union of member states that are located primarily in Europe. The union has a total area of and an estimated total population of about 447million. The EU has often been ...
. Originally, its licensing terms allowed its software to be used freely for academic purposes, with commercial licenses available for other uses. CGAL Releases 3.x were distributed under the
QPL license. Starting with CGAL 4.0, released in 2012, CGAL is distributed under the GPL version 3. it is managed by a thirteen-member editorial board, with an additional 30 developers and reviewers.
The project started in 1996 as the pooling of the previous efforts of several project participants:PlaGeo and SpaGeo from
Utrecht University
Utrecht University (UU; nl, Universiteit Utrecht, formerly ''Rijksuniversiteit Utrecht'') is a public research university in Utrecht, Netherlands. Established , it is one of the oldest universities in the Netherlands. In 2018, it had an enrollm ...
,
LEDA of the Max-Planck-Institute for Informatics and C++GAL of
INRIA Sophia Antipolis
(wisdom), gr, (Ἀντίπολις, antipolis) ("opposite city" from its position on the opposite side of the Var estuary from Nice, also former name of Antibes, part of the technology park)
, postal_code = 06220 (Vallauris), 06250 (Mo ...
. The LEDA library encompasses a broader range of algorithms. A comparison of the two libraries is provided by Kettner and Näher. Three CGAL User workshops held in 2002, 2004, and 2008 highlighted research results related to CGAL, and many additional papers related to CGAL have appeared in other conferences, workshops, and journals.
Scope
The library covers the following topics:
* Geometry kernels - basic geometric operations on
geometric primitive
In vector computer graphics, CAD systems, and geographic information systems, geometric primitive (or prim) is the simplest (i.e. 'atomic' or irreducible) geometric shape that the system can handle (draw, store). Sometimes the subroutines tha ...
s
*
Arithmetic
Arithmetic () is an elementary part of mathematics that consists of the study of the properties of the traditional operations on numbers—addition, subtraction, multiplication, division, exponentiation, and extraction of roots. In the 19th c ...
and
algebra
Algebra () is one of the areas of mathematics, broad areas of mathematics. Roughly speaking, algebra is the study of mathematical symbols and the rules for manipulating these symbols in formulas; it is a unifying thread of almost all of mathem ...
*
Convex hull algorithms
*
Polygon
In geometry, a polygon () is a plane figure that is described by a finite number of straight line segments connected to form a closed '' polygonal chain'' (or ''polygonal circuit''). The bounded plane region, the bounding circuit, or the two t ...
s and
polyhedra
In geometry, a polyhedron (plural polyhedra or polyhedrons; ) is a three-dimensional shape with flat polygonal faces, straight edges and sharp corners or vertices.
A convex polyhedron is the convex hull of finitely many points, not all on t ...
* Polygon and polyhedron operations
*
Arrangement
In music, an arrangement is a musical adaptation of an existing composition. Differences from the original composition may include reharmonization, melodic paraphrasing, orchestration, or formal development. Arranging differs from orchestr ...
s
*
Point set triangulations
*
Delaunay triangulations
*
Voronoi diagrams
*
Mesh generation
*
Geometry processing
Geometry processing, or mesh processing, is an area of research that uses concepts from applied mathematics, computer science and engineering to design efficient algorithms for the acquisition, reconstruction, analysis, manipulation, simulat ...
* Search structures (
''k''-d tree)
* Shape analysis, fitting, and distances
*
Interpolation
In the mathematical field of numerical analysis, interpolation is a type of estimation, a method of constructing (finding) new data points based on the range of a discrete set of known data points.
In engineering and science, one often has ...
*
Kinetic data structures
Kinetic (Ancient Greek: κίνησις “kinesis”, movement or to move) may refer to:
* Kinetic theory, describing a gas as particles in random motion
* Kinetic energy, the energy of an object that it possesses due to its motion
Art and enter ...
Platforms
The library is supported on a number of platforms:
CGAL Supported Platforms
/ref>
* Microsoft Windows ( GNU G++, Microsoft Visual C++, Intel C++ Compiler
Intel oneAPI DPC++/C++ Compiler and Intel C++ Compiler Classic are Intel’s C, C++, SYCL, and Data Parallel C++ (DPC++) compilers for Intel processor-based systems, available for Windows, Linux, and macOS operating systems.
Overview
Intel ...
)
* GNU g++ ( Solaris, Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
, Mac OS
Two major famlies of Mac operating systems were developed by Apple Inc.
In 1984, Apple debuted the operating system that is now known as the "Classic" Mac OS with its release of the original Macintosh System Software. The system, rebranded " ...
)
* Clang
Clang is a compiler front end for the C, C++, Objective-C, and Objective-C++ programming languages, as well as the OpenMP, OpenCL, RenderScript, CUDA, and HIP frameworks. It acts as a drop-in replacement for the GNU Compiler Collection ...
The CGAL library depends on the Boost libraries
Boost is a set of libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions, and unit testing. It co ...
, and several CGAL packages on the Eigen C++ library.
See also
* OPEN CASCADE
Open Cascade is an Information Technology Company of Capgemini,. Open Cascade provides services in the domain of scientific and technical computing and simulation tools.
Open Cascade is primarily known to public for its Open Source platforms th ...
* OpenSCAD (uses CGAL)
References
{{Reflist
External links
CGAL Homepage
Geometric algorithms
C++ libraries
Python (programming language) libraries
Free computer libraries
Max Planck Institute for Informatics