From 8daee1bb21746f39d7456f807027601f6adcdfb6 Mon Sep 17 00:00:00 2001 From: Tarik Moussa Date: Tue, 26 May 2026 00:02:42 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20fix=20cherry-pick=20duplicate=209d/9e?= =?UTF-8?q?=20sections=20=E2=80=94=20merge=20into=20unified=20structure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Auto-merge from cherry-pick concatenated both branch versions of Phase 9d and 9e. This commit resolves the duplication: - 9d now has 4 sub-items (9d.1–9d.4) combining both branches: 9d.1 ConesUtility (detailed: BFS, auto-placement, quantization) + Troyanov/Springborn refs (from literature analysis) 9d.2 Non-Euclidean cone extensions (RESEARCH) + Bobenko-Lutz 2025 + Crane 2018 (from literature analysis) 9d.3 StereographicUnwrapper + SphereUtility 9d.4 MobiusCenteringFunctional - 9e keeps the detailed reviewer/meeting-prep version + adds mathematical references (Bobenko-Hoffmann-Springborn 2006) - 9f (Polygon Laplacian, Alexa 2011/2020) retained as standalone section Co-Authored-By: Claude Sonnet 4.6 --- doc/roadmap/phases.md | 103 ++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 64 deletions(-) diff --git a/doc/roadmap/phases.md b/doc/roadmap/phases.md index 2db01de..0f991cd 100644 --- a/doc/roadmap/phases.md +++ b/doc/roadmap/phases.md @@ -129,16 +129,22 @@ mesh type. + holonomy infrastructure. Effort: ~2 weeks for fundamental polygon, +2 weeks for surgery layer, +1 week integration. +``` -9d — Cone singularities + sphere atlas (Java port + research extension) -──────────────────────────────────────────────────────────────────────── +9d — Cone metrics + sphere utilities (Java port + research extension) +──────────────────────────────────────────────────────────────────── -9d.1 ConesUtility (Java port — Euclidean only) - → cones_utility.hpp - Java source: ConesUtility.java (~200 lines) +``` +9d.1 ConesUtility (Java port: unwrapper/ConesUtility.java) + → cone_singularities.hpp + Fills the "⚠️ data structure only" gap in java-parity.md: + - Detect interior cone vertices (angle deficit ≠ 0) + - BFS path from cone to mesh boundary → cut edge set + - Auto-placement: conjugate gradient on Θ-gradient magnitude + - Quantization: snap cone angles to π/2, π/3, π/6 for + quad / triangle / hexagonal atlas targets + Java reference: unwrapper/ConesUtility.java Mathematical reference: Troyanov 1991 + Springborn 2020 §3 - Port scope: prescribed cone angles Θᵥ ≠ 2π in Euclidean mode. - Status: 🔲 planned 9d.2 Non-Euclidean cone extensions (RESEARCH, not in Java) → extend ConesUtility to HyperIdeal + Spherical modes @@ -153,68 +159,13 @@ mesh type. automatic cone placement; directly applicable to 9d.2 algorithm. Status: 🔲 planned -9d.3 StereographicUnwrapper (Java port) - → stereo_unwrapper.hpp - Java source: StereographicUnwrapper.java (266 lines) - Converts spherical DCE output (Point_3 on S²) to a 2-D atlas - via stereographic projection + Möbius centring. - Closes the visualisation gap from discrete_conformal_map_spherical(). - Effort: small (~3 days). - Status: 🔲 planned - -9e — CirclePatternLayout (Java port) -───────────────────────────────────── - -9e CirclePatternLayout + CirclePatternUtility (Java port) - → circle_pattern_layout.hpp - Java sources: CirclePatternLayout.java + CirclePatternUtility.java - + CPEuclideanRotation.java - Mathematical reference: Bobenko-Springborn 2004 variational principle - + Bobenko-Hoffmann-Springborn 2006 "Minimal - surfaces from circle patterns" (Discrete & - Comput. Geom. 35, 2006). - Status: 🔲 planned - -9f — Polygon Laplacian (RESEARCH — no Java equivalent) -────────────────────────────────────────────────────── - -9f Discrete Laplacian on general polygonal meshes - → polygon_laplacian.hpp - Java source: NONE - Mathematical reference: - Alexa, Wardetzky 2011 "Discrete Laplacians on General Polygonal - Meshes" (ACM SIGGRAPH 2011) — virtual-node construction, - polygon cotangent weights extending the Pinkall-Polthier formula. - Alexa 2020 "Discrete Laplacians on General Polygonal Meshes" - (ACM TOG 39, 2020) — extended journal treatment, error bounds. - Enables: DCE energy evaluation on quad-dominant / Voronoi / - polygon meshes without forced triangulation. - Replaces euclidean_hessian.hpp for non-triangular inputs. - Status: 🔲 planned (pure research, no Java source) - Effort: medium (~2 weeks core + tests; +1 week Newton integration). -``` - -9d — Cone metrics + sphere utilities (Java port — 2026 library scan) -──────────────────────────────────────────────────────────────────── - -``` -9d.1 ConesUtility (Java port: unwrapper/ConesUtility.java) - → cone_singularities.hpp - Fills the "⚠️ data structure only" gap in java-parity.md: - - Detect interior cone vertices (angle deficit ≠ 0) - - BFS path from cone to mesh boundary → cut edge set - - Auto-placement: conjugate gradient on Θ-gradient magnitude - - Quantization: snap cone angles to π/2, π/3, π/6 for - quad / triangle / hexagonal atlas targets - Java reference: unwrapper/ConesUtility.java - -9d.2 StereographicUnwrapper + SphereUtility (Java port) +9d.3 StereographicUnwrapper + SphereUtility (Java port) → stereographic_layout.hpp Stereographic projection S²→ℂ∪{∞} + Möbius centering for genus-0 surfaces. Converts spherical DCE output to a flat 2-D atlas. Java reference: unwrapper/StereographicUnwrapper.java (266 lines) -9d.3 MobiusCenteringFunctional (Java port, optional upgrade) +9d.4 MobiusCenteringFunctional (Java port, optional upgrade) → integrate into layout.hpp normalise_hyperbolic() Variational Möbius centering via Lorentz geometry: E = Σ log(-⟨x,p⟩/√(-⟨x,x⟩)) @@ -235,6 +186,30 @@ mesh type. - CPEuclideanRotation: rotation-invariant CP functional variant Java references: unwrapper/circlepattern/CirclePattern{Layout,Utility}.java unwrapper/circlepattern/CPEuclideanRotation.java + Mathematical reference: Bobenko-Springborn 2004 variational principle + + Bobenko-Hoffmann-Springborn 2006 "Minimal + surfaces from circle patterns" (Discrete & + Comput. Geom. 35, 2006). +``` + +9f — Polygon Laplacian (RESEARCH — no Java equivalent) +────────────────────────────────────────────────────── + +``` +9f Discrete Laplacian on general polygonal meshes + → polygon_laplacian.hpp + Java source: NONE + Mathematical reference: + Alexa, Wardetzky 2011 "Discrete Laplacians on General Polygonal + Meshes" (ACM SIGGRAPH 2011) — virtual-node construction, + polygon cotangent weights extending the Pinkall-Polthier formula. + Alexa 2020 "Discrete Laplacians on General Polygonal Meshes" + (ACM TOG 39, 2020) — extended journal treatment, error bounds. + Enables: DCE energy evaluation on quad-dominant / Voronoi / + polygon meshes without forced triangulation. + Replaces euclidean_hessian.hpp for non-triangular inputs. + Status: 🔲 planned (pure research, no Java source) + Effort: medium (~2 weeks core + tests; +1 week Newton integration). ``` ---