Restructures the CMake build into three clearly separated modes:
(default) tests only – Eigen + GTest, no heavy deps
-DWITH_VIEWER=ON builds viewer lib (libigl / GLFW / GLAD)
-DWITH_CGAL=ON builds conformallab_core CLI app;
implies WITH_VIEWER automatically
Changes:
- code/CMakeLists.txt: viewer and core targets are now guarded by
option() flags; GTest / tests target is always built
- code/deps/Cmakelists.txt: CGAL, libigl, glfw, glad are only
extracted when the corresponding mode is enabled; Eigen always
- Remove Boost (211 MB tarball, 0 usages in the codebase – CGAL 6.x
does not require Boost for Simple_cartesian / Surface_mesh / basic IO)
- Remove code/src/main.cpp (dead file, not referenced in CMake)
All 16 C++ tests pass in tests-only mode (verified locally).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
conformallab++
conformallab++ is a modern C++ reimplementation of the ConformalLab software by Stefan Sechelmann for experiments in discrete conformal geometry and related mesh transformations.
It builds on well‑established open‑source libraries such as CGAL, Eigen, and Boost for robust geometric data structures and efficient numerical computations, and uses single‑header libraries CLI11 and json.hpp for a lightweight command‑line interface and configuration handling. In addition, libigl’s OpenGL viewer stack based on GLFW provides portable windowing and input handling, while the separate libigl‑glad component supplies a generated OpenGL function loader for the required core profile, making interactive visualization easy to integrate.
Status
This project is in an early prototype stage.
API, file formats and command‑line interface are all subject to change.
Features (placeholder)
- Discrete conformal geometry utilities (placeholder)
- Mesh and graph data structures built on CGAL (placeholder)
- Linear algebra and optimization routines using Eigen (placeholder)
- High‑level operations and helpers based on Boost (placeholder)
- Command‑line tools with CLI11 and JSON configuration (placeholder)
Getting started
Prerequisites
- A C++20 compiler (e.g.
g++orclang++) - CMake version 3.20
Clone the repository
git clone https://codeberg.org/user2595/ConformalLabpp
cd conformallabpp/code
Configure and build
cmake -S . -B build && cmake --build build
Run the binare
./bin/conformallab_core --input ./data/off/simple_cupe.off
License
conformallabpp is released under the MIT License (see LICENSE).