Tarik Moussa cd7b7a8fd8 cmake: add WITH_CGAL / WITH_VIEWER modes, remove unused Boost
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>
2026-05-09 21:42:43 +02:00
2026-02-09 18:39:03 +01:00
2026-03-07 11:25:56 +02:00

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 wellestablished opensource libraries such as CGAL, Eigen, and Boost for robust geometric data structures and efficient numerical computations, and uses singleheader libraries CLI11 and json.hpp for a lightweight commandline interface and configuration handling. In addition, libigls OpenGL viewer stack based on GLFW provides portable windowing and input handling, while the separate libiglglad 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 commandline 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)
  • Highlevel operations and helpers based on Boost (placeholder)
  • Commandline tools with CLI11 and JSON configuration (placeholder)

Getting started

Prerequisites

  • A C++20 compiler (e.g. g++ or clang++)
  • 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).

Description
ConformalLab C++ port
Readme MIT 235 MiB
Languages
C++ 94.8%
Shell 2.7%
CMake 1.4%
Python 0.9%
C 0.2%