This library contains implementations of data structures and algorithms for geometry and mesh processing. Other things that could be implemented here are curves and surface methods such as subdivision surfaces.
mesh_processing is built with CMake and requires C++11. First, make sure all dependencies are available on your system. Create a new directory called "build", cd to it, and run "cmake ..". To include mesh_processing in a C++ application, simply include mesh_processing.h and link against the compiled library.
- Eigen3 (C++ header-only linear algebra library. Update CMakeLists.txt to point to the Eigen3 header files if needed.)
- TetGen (Hang Si. A Quality Tetrahedral Mesh Generator and a 3D Delaunay Triangulator)
The half-edge mesh data structure is largely based off of the paper by Mario Botsch and Daniel Sieger, (2011), "Design, Implementation, and Evaluation of the Surface_mesh data structure". This data structure is intended to be useful, for example, for algorithms described in the book Polygon Mesh Processing.
- geometry-central: A very good mesh data structure based off of the same principles. (See this SGP 2020 video)
- libigl: A very good geometry processing algorithms library, with an OpenGL viewer. The core data structure is a simple vertex and incidence list. (See this SGP 2020 video)
- pmp-library, The Polygon Mesh Processing library (See this SGP 2020 video)
- OpenMesh
- OpenVolumeMesh
- OpenFlipper
- MeshLab
- VCG, Visualization and Computer Graphics Library