/geogram

a programming library with geometric algorithms

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

geogram

Geogram is a programming library with geometric algorithms. It contains the main results in Geometry Processing from the former ALICE Inria project, that is, more than 30 research articles published in ACM SIGGRAPH, ACM Transactions on Graphics, Symposium on Geometry Processing and Eurographics. It was supported by two grants from the European Research Council (ERC): GOODSHAPE and VORPALINE.

Geogram includes a simple yet efficient Mesh data structure (for surfacic and volumetric meshes), exact computer arithmetics (a-la Shewchuck, implemented in GEO::expansion ), a predicate code generator (PCK: the Predicate Construction Kit), standard geometric predicates (orient/insphere), Delaunay triangulation, Voronoi diagram, spatial search data structures, spatial sorting) and less standard ones (more general geometric predicates, intersection between a Voronoi diagram and a triangular or tetrahedral mesh embedded in n dimensions), and semi-discrete optimal transport.

Compiling

Mini tutorials and example programs

Design principles

  • Make it as simple as possible (but not simpler)
  • Make it as easy to use as possible
  • Make it as easy to compile as possible
  • Maximize speed
  • Minimize memory consumption
  • Minimize number of lines of code
  • Minimize number of C++ classes

Simplicity is the ultimate sophistication [Leonardo da Vinci]

More on this in this keynote Eurographics presentation.