Cg3Lib is a C++ geometry processing library developed by the CG3HCI Group of the University of Cagliari. It is composed of different modules:
- Core: it provides some basic data structures (Point, BoundingBox...), parsers for saving and loading multiple mesh formats and utilities;
- Meshes: some Mesh data structures which help to manage easily 3D meshes;
- Data Structures: some generic (not necessarily geometric) data structures like arrays, trees, graphs;
- Algorithms: a collection of geometry processing and computetional geometry algorithms;
- Viewer: a 3D viewer developed with Qt and based on libQGLViewer (http://libqglviewer.com/): it allows to render easily mesh data structures and to create easyly guis (drag&drop with QtCreator);
- Cgal: a simple interface which allows to use some CGAL functionalities (https://www.cgal.org/);
- Voro++: a simple 3D Voronoi Data structures computed using the voro++ library (http://math.lbl.gov/voro++/)
- LibIGL: a simple interface which allows to use some LibIGL functionalities (http://libigl.github.io/libigl/);
- CinoLib: a simple interface which allows to use some CinoLib functionalities (https://github.com/mlivesu/cinolib);
- VCGLib: a simple interface which allows to use some VCGLib functionalities (https://github.com/cnr-isti-vclab/vcglib)
All these modules are optional (except of the core module) and the project can be compiled on Windows, MacOS and Linux. The documentation can be found at the following link: https://cg3hci.github.io/index.html.
git clone https://github.com/cg3hci/cg3lib.git
bash cg3lib/install_macos.sh
git clone https://github.com/cg3hci/cg3lib.git
bash cg3lib/install_ubuntu.sh
Look at the examples in the "examples" folder inside the repo.
Compiling the examples:
cd cg3lib/examples
qmake
make
If you use cg3lib in your research projects, please cite the library using this BibTeX entry:
@software{cg3lib,
author = {Alessandro Muntoni and Stefano Nuvoli},
title = {{CG3Lib: A C++ geometry processing library}},
month = jan,
year = 2021,
publisher = {Zenodo},
doi = {10.5281/zenodo.4431777}
}