A header-only C++ library for processing polygonal and polyhedral meshes with a unified abstract mesh data structure.
CinoLib is a header-only C++ library for processing polygonal and polyhedral meshes, supporting a wide range of surface and volumetric elements. It provides a unified abstract mesh data structure that allows algorithms to be written once and applied to any mesh type, reducing code duplication and debugging effort. The library is designed primarily for researchers in computer graphics and geometry processing who need to quickly prototype and demonstrate novel algorithms.
Researchers and developers in computer graphics, geometry processing, and computational geometry who require a flexible library for mesh processing across both surface and volumetric domains. It is particularly suited for academic projects and software prototypes.
CinoLib offers a unique data structure that unifies surface and volumetric mesh processing, supporting general polygonal and polyhedral elements where other libraries are more restricted. Its header-only design and integrated GUI tools enable rapid prototyping, making it a practical choice for research and algorithm development.
A generic programming header only C++ library for processing polygonal and polyhedral meshes
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
All mesh types inherit from a unique base class, enabling algorithms to be written once and run on any mesh type, reducing code duplication as emphasized in the README.
Handles surface meshes (triangles, quads, polygons) and volumetric meshes (tetrahedra, hexahedra, polyhedra) in a single library, offering versatility beyond many alternatives.
Includes OpenGL rendering with GLFW and ImGui, providing pre-built mesh controls and customizable callbacks for rapid development of research demos, as shown in the examples.
No installation required; simply include headers in C++ projects, with CMake integration automatically handling dependencies through configurable flags.
The README explicitly states that generality trades off efficiency, with dynamic memory allocation for variable-sized elements leading to potential slowness and higher memory usage compared to specialized libraries.
As a research-focused library, it has fewer examples, an incomplete tutorial, and a smaller community than established tools, which can hinder troubleshooting and feature availability.
Relies on multiple external libraries (e.g., TETGEN, BOOST) that must be configured via CMake flags, adding setup overhead and potential compatibility issues for users.