docs: fix cherry-pick duplicate 9d/9e sections — merge into unified structure
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 <noreply@anthropic.com>
This commit is contained in:
@@ -129,16 +129,22 @@ mesh type.
|
|||||||
+ holonomy infrastructure.
|
+ holonomy infrastructure.
|
||||||
Effort: ~2 weeks for fundamental polygon, +2 weeks for surgery
|
Effort: ~2 weeks for fundamental polygon, +2 weeks for surgery
|
||||||
layer, +1 week integration.
|
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
|
9d.1 ConesUtility (Java port: unwrapper/ConesUtility.java)
|
||||||
Java source: ConesUtility.java (~200 lines)
|
→ 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
|
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)
|
9d.2 Non-Euclidean cone extensions (RESEARCH, not in Java)
|
||||||
→ extend ConesUtility to HyperIdeal + Spherical modes
|
→ extend ConesUtility to HyperIdeal + Spherical modes
|
||||||
@@ -153,68 +159,13 @@ mesh type.
|
|||||||
automatic cone placement; directly applicable to 9d.2 algorithm.
|
automatic cone placement; directly applicable to 9d.2 algorithm.
|
||||||
Status: 🔲 planned
|
Status: 🔲 planned
|
||||||
|
|
||||||
9d.3 StereographicUnwrapper (Java port)
|
9d.3 StereographicUnwrapper + SphereUtility (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)
|
|
||||||
→ stereographic_layout.hpp
|
→ stereographic_layout.hpp
|
||||||
Stereographic projection S²→ℂ∪{∞} + Möbius centering for
|
Stereographic projection S²→ℂ∪{∞} + Möbius centering for
|
||||||
genus-0 surfaces. Converts spherical DCE output to a flat 2-D atlas.
|
genus-0 surfaces. Converts spherical DCE output to a flat 2-D atlas.
|
||||||
Java reference: unwrapper/StereographicUnwrapper.java (266 lines)
|
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()
|
→ integrate into layout.hpp normalise_hyperbolic()
|
||||||
Variational Möbius centering via Lorentz geometry:
|
Variational Möbius centering via Lorentz geometry:
|
||||||
E = Σ log(-⟨x,p⟩/√(-⟨x,x⟩))
|
E = Σ log(-⟨x,p⟩/√(-⟨x,x⟩))
|
||||||
@@ -235,6 +186,30 @@ mesh type.
|
|||||||
- CPEuclideanRotation: rotation-invariant CP functional variant
|
- CPEuclideanRotation: rotation-invariant CP functional variant
|
||||||
Java references: unwrapper/circlepattern/CirclePattern{Layout,Utility}.java
|
Java references: unwrapper/circlepattern/CirclePattern{Layout,Utility}.java
|
||||||
unwrapper/circlepattern/CPEuclideanRotation.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).
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user