CGAL Made More Accessible
Nir Goren, Efi Fogel, and Dan Halperin

TL;DR
This paper presents a system for rapidly generating Python bindings for CGAL's C++ modules, making computational geometry algorithms more accessible and easier to use for practitioners and newcomers.
Contribution
It introduces a flexible binding generation system that handles the complexity of CGAL's template-heavy code, enabling selective and concurrent use of multiple object types.
Findings
Bindings significantly improved accessibility for non-experts.
The system efficiently generates bindings for complex template types.
Enhanced usability facilitates broader adoption of CGAL.
Abstract
We introduce bindings that enable the convenient, efficient, and reliable use of software modules of CGAL (Computational Geometry Algorithm Library), which are written in C++, from within code written in Python. There are different tools that facilitate the creation of such bindings. We present a short study that compares three main tools, which leads to the tool of choice. The implementation of algorithms and data structures in computational geometry presents tremendous difficulties, such as obtaining robust software despite the use of (inexact) floating point arithmetic, found in standard hardware, and meticulous handling of all degenerate cases, which typically are in abundance. The code of CGAL extensively uses function and class templates in order to handle these difficulties, which implies that the programmer has to make many choices that are resolved during compile time (of the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Numerical Analysis Techniques · Computational Geometry and Mesh Generation · 3D Shape Modeling and Analysis
