Files
ConformalLabpp/doc/api/headers.md
Tarik Moussa 95d48c434a chore: .gitignore + vergessene Doc-Dateien nachgetragen
.gitignore: build-Verzeichnisse, .DS_Store, .claude/, CMake-Artefakte
Doc-Dateien die beim Restructure-Commit fehlten:
  doc/api/headers.md             — alle 24 Public-Header mit Beschreibung
  doc/api/tests.md               — 26 Suiten, 158 Tests, Einzelzahlen
  doc/architecture/design-decisions.md — Architekturentscheidungen + Begründung
  doc/architecture/project-structure.md — Verzeichnisbaum + Build-Targets
README.md: Links zu den vier neuen Doc-Dateien ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 21:40:05 +02:00

4.0 KiB
Raw Blame History

Public Headers (code/include/)

All algorithms are header-only. Include the headers you need directly — there is no compiled library to link against (only GTest for tests and CGAL/Eigen for the CGAL-dependent headers).

Core mesh type

Header Description
conformal_mesh.hpp ConformalMesh = CGAL::Surface_mesh<Point3>. Property-map naming convention. Index type aliases. GeometryType enum.
constants.hpp conformallab::PI, TWO_PI
mesh_builder.hpp make_triangle() / make_tetrahedron() / make_quad_strip() / make_fan() / make_open_cylinder() — test mesh factories
mesh_io.hpp load_mesh() / save_mesh() via CGAL::IO (OFF / OBJ / PLY)
mesh_utils.hpp cgal_to_eigen() — convert ConformalMesh vertex positions to Eigen::MatrixXd

Special functions

Header Description
clausen.hpp clausen_cl2(θ) (Clausen Cl₂), lobachevsky(θ) (Л), im_li2(θ) (ImLi₂ = imaginary part of dilogarithm)

HyperIdeal geometry (H²)

Header Description
hyper_ideal_geometry.hpp ζ₁₃, ζ₁₄, ζ₁₅ (Springborn 2020), l_from_zeta(), alpha_ij(), beta_i(), sigma_i(), sigma_ij()
hyper_ideal_utility.hpp Tetrahedron volumes (Meyerhoff formula, KolpakovMednykh)
hyper_ideal_visualization_utility.hpp Poincaré disk projection, circumcircle helpers, Lorentz boost
hyper_ideal_functional.hpp HyperIdealMaps, setup_hyper_ideal_maps(), compute_hyper_ideal_lambda0_from_mesh(), assign_all_dof_indices(), hyper_ideal_gradient(), hyper_ideal_energy()
hyper_ideal_hessian.hpp hyper_ideal_hessian() — symmetric FD Hessian (Phase 9b: analytic)

Spherical geometry (S²)

Header Description
spherical_geometry.hpp Spherical arc-length, half-angle formula, spherical law of cosines
spherical_functional.hpp SphericalMaps, setup_spherical_maps(), compute_spherical_lambda0_from_mesh(), spherical_gradient(), spherical_energy()
spherical_hessian.hpp spherical_hessian() — analytic Hessian via ∂α/∂u from law of cosines

Euclidean geometry (ℝ²)

Header Description
euclidean_geometry.hpp Euclidean corner angle (t-value / atan2), edge lengths from DOF vector
euclidean_functional.hpp EuclideanMaps, setup_euclidean_maps(), compute_euclidean_lambda0_from_mesh(), euclidean_gradient(), euclidean_energy()
euclidean_hessian.hpp euclidean_hessian() — cotangent Laplacian (PinkallPolthier 1993)

Solver

Header Description
newton_solver.hpp newton_euclidean(), newton_spherical(), newton_hyper_ideal(), solve_linear_system() (SimplicialLDLT + SparseQR fallback), NewtonResult struct

Preprocessing

Header Description
gauss_bonnet.hpp euler_characteristic(), genus(), gauss_bonnet_sum(), gauss_bonnet_rhs(), gauss_bonnet_deficit(), check_gauss_bonnet(), enforce_gauss_bonnet()

Layout and holonomy

Header Description
cut_graph.hpp CutGraph struct, compute_cut_graph() — tree-cotree algorithm (EricksonWhittlesey 2005), produces 2g seam edges
layout.hpp euclidean_layout(), spherical_layout(), hyper_ideal_layout(), normalise_{euclidean,hyperbolic,spherical}(). Structs: Layout2D, Layout3D, HolonomyData. MobiusMap (T(z)=(az+b)/(cz+d), from_three, compose, inverse, apply). Priority-BFS, halfedge_uv.

Post-processing

Header Description
period_matrix.hpp PeriodData, compute_period_matrix(), reduce_to_fundamental_domain(), is_in_fundamental_domain() — period ratio τ = ω₂/ω₁ ∈ , SL(2,) reduction
fundamental_domain.hpp FundamentalDomain, compute_fundamental_domain() (genus 1: CCW parallelogram; genus > 1: empty, TODO Phase 9c), tiling_copy(), tiling_neighbourhood()
serialization.hpp save_result_json(), load_result_json(), save_result_xml(), load_result_xml(), save_layout_off()