Software in CGAL
Algorithms for curved geometry, changing triangulations and geometric sampling, developed with collaborators and distributed in the Computational Geometry Algorithms Library.
Computing with circles and arcs
A circular arc can meet a line or another arc at points that ordinary rational coordinates cannot represent exactly. The circular kernel provides predicates and constructions for working with this geometry.
My contribution
I improved the efficiency of the kernel in 2006 and added functionality in 2008, building on the original implementation by Sylvain Pion and Monique Teillaud.
Contributions in 2006 and 2008
Exact intersections in three dimensions
Intersecting spheres, circles and planes requires both combinatorial decisions and exact coordinates. The spherical kernel supplies these operations for curved geometry in three dimensions.
My contribution
Monique Teillaud and I coauthored the first version, integrated into CGAL 3.4. Frédéric Cazals and Sébastien Loriot subsequently added operations relative to a common reference sphere.
First version in CGAL 3.4
Moving and locating points in a triangulation
When a point moves, a Delaunay triangulation must remain valid. Finding the cell containing a query point is another recurring task in geometric algorithms.
My contribution
With Olivier Devillers, I added point displacement in 2010 (CGAL 3.7) and implemented structural filtering for efficient point location in 2011 (CGAL 3.8).
CGAL 3.7 · 2010 / CGAL 3.8 · 2011
Sampling points inside triangles and tetrahedra
Geometric experiments often need points distributed uniformly inside a shape. Barycentric coordinates provide a way to generate points throughout a triangle or tetrahedron.
My contribution
Alexandru Tifrea and I implemented generators for points in 2D and 3D triangles and in 3D tetrahedra during Google Summer of Code 2013.
Google Summer of Code · 2013
Ordering points on a sphere
Processing nearby points together can make geometric insertion more efficient. Hilbert sorting gives points on a sphere a spatially coherent order.
My contribution
Olivier Devillers and I added Hilbert sorting on the sphere. This extends a package whose original 2D and 3D sorting implementation was developed by Christophe Delage.
Hilbert sorting on the sphere