Commit Graph

28 Commits

Author SHA1 Message Date
Tarik Moussa
e59f79a8e2 docs + ci: update README, add ci-cpp Docker image, use container in workflow
README:
- Remove stale Boost mention (unused dep, removed yesterday)
- Document three build modes (tests-only / WITH_VIEWER / WITH_CGAL)
  with a comparison table and per-mode cmake commands
- Add project structure overview
- Fix C++20 → C++17 (actual standard used)
- Fix clone URL and getting-started commands
- Add CI section with Dockerfile build instructions

CI:
- Add .gitea/docker/Dockerfile.ci-cpp — ubuntu:22.04 with cmake,
  g++, git, and Node.js 20 pre-installed (Node.js needed for
  actions/checkout@v4 inside containers)
- Update cpp-tests.yml to use ci-cpp container instead of installing
  build tools on every run; add JUnit XML output and summary step

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 21:49:44 +02:00
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
Tarik Moussa
5337a9e5a7 ci: use eulernest runner (Raspberry Pi, ARM64)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 14:51:45 +02:00
Tarik Moussa
d909683a5b add Gitea Actions workflow for C++ tests
Runs conformallab_tests (GTest) on every push to main/dev/claude/**
using ubuntu-latest + cmake + g++. Only the test binary is built,
not the full app (no CGAL/Boost compilation needed).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 13:35:23 +02:00
Tarik Moussa
a2876b9cbf port MatrixUtility and SurfaceCurveUtility tests to C++
- include/matrix_utility.hpp: 4x4 mapping matrix R·from=to (Eigen)
- include/projective_math.hpp: dehomogenize, hyperbolicDistance,
  isOnSegment (collinearity + betweenness via 3D cross/dot),
  getPointOnCorrespondingSegment (parameter by arc-length ratio)
- test_matrix_utility.cpp: port of MatrixUtilityTest (1 test)
- test_surface_curve_utility.cpp: port of SurfaceCurveUtilityTest
  testIsBetween and testGetPointOnSegment_SegmentEdge (2 tests)
- tolerance adjusted to 1e-12 for matrix inversion (2.7e-15 rounding
  from Eigen vs jReality's LU; both well within meaningful accuracy)

Total: 16/16 tests pass

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 01:15:35 +02:00
Tarik Moussa
c30d540521 add GTest infrastructure and port first mathematical tests from Java
- Add Google Test via CMake FetchContent (v1.14.0)
- Add clausen.hpp: Clausen integral, Lobachevsky function, Im(Li2)
- Add hyper_ideal_utility.hpp: generalized and ideal-vertex hyperbolic
  tetrahedron volume formulas using Eigen for the 4x4 Gram determinant
- Port ClausenTest (5 tests) and HyperIdealUtilityTest (8 tests) from
  Java/JUnit — all 13 pass with same tolerances as the Java originals
- Fix pre-existing VIEWER/viewer case mismatch in CMakeLists.txt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 01:07:19 +02:00
Tarik Moussa
94533514fc fix typo 2026-03-17 21:25:33 +02:00
Tarik Moussa
e150cf6ef3 add new compile target for viewer 2026-03-17 21:18:59 +02:00
Tarik Moussa
2479aedeee ad simple visualization 2026-03-16 17:47:48 +02:00
Tarik Moussa
1ce993f296 ad simple visualization 2026-03-16 17:20:15 +02:00
Tarik Moussa
d134add5a6 update readme 2026-03-07 11:25:56 +02:00
Tarik Moussa
14c825dcf0 v0 2026-03-06 21:55:16 +02:00
Tarik Moussa
e1a90dbd85 fix typo 2026-03-06 21:43:54 +02:00
Tarik Moussa
5be43c90bc add dep liblig 2026-03-04 13:42:26 +02:00
Tarik Moussa
2499ee862f .git/MERGE_MSG 2026-03-02 22:20:24 +02:00
user2595
82e1a72bf1 doc/architecture/overall_pipeline.md aktualisiert 2026-03-02 18:11:53 +01:00
user2595
a2e3dae414 doc/architecture/overall_pipeline.md aktualisiert 2026-03-02 15:56:38 +01:00
user2595
439cbfc44c doc/architecture/overall_pipeline.md aktualisiert
Final the first
2026-03-02 14:46:48 +01:00
Tarik Moussa
f3b7453a45 add CMake dependency handling for portability 2026-02-16 18:18:39 +02:00
Tarik Moussa
edc9415744 .git/MERGE_MSG 2026-02-16 08:14:41 +02:00
Tarik Moussa
1d20c3a195 add CMake dependency handling for portability 2026-02-16 08:13:46 +02:00
user2595
3a4fee3f76 doc/architecture/overall_pipeline.md hinzugefügt 2026-02-15 13:54:11 +01:00
Tarik Moussa
b7875f3b88 add CMake dependency handling for portability 2026-02-14 22:23:21 +02:00
Tarik Moussa
fbd3b26acc CLI11.hpp 2026-02-09 21:43:21 +02:00
Tarik Moussa
6d283fd952 json.hpp 2026-02-09 21:35:54 +02:00
Tarik Moussa
119601d639 CMakeList.txt 2026-02-09 21:30:36 +02:00
Tarik Moussa
a140f439a6 README.md 2026-02-09 20:05:35 +02:00
user2595
a0dbdb8818 Initial commit 2026-02-09 18:39:03 +01:00