New headers:
- spherical_geometry.hpp: spherical arc length l(λ) and half-angle formula
for interior angles of a spherical triangle (SphericalFaceAngles struct)
- spherical_functional.hpp: SphericalMaps bundle, setup/assign DOF helpers,
compute_lambda0_from_mesh(), gradient (Θ_v − Σα_v; Schläfli edge formula),
energy via 10-point Gauss-Legendre path integral, gradient_check_spherical()
Updated:
- mesh_builder.hpp: add make_spherical_tetrahedron() (vertices on unit sphere)
and make_octahedron_face() (single right-angled spherical triangle)
- tests/cgal/CMakeLists.txt: enable test_spherical_functional.cpp
- README.md: rewrite for CGAL-package goal, two test targets, all headers,
updated project tree, Phase progress table, key design decisions
Tests (cgal.SphericalFunctional.*): 8 active + 1 skip
- OctaFaceAnglesAreRightAngles, SpherTetAngleSumExceedsPi
- GradientCheck_{OctaFaceVertex, SpherTetVertex, SpherTetAllDofs,
SpherFan4Vertex, MixedPinnedVertices}
- AnglesFiniteAtKnownPoint
All 30 cgal.* tests pass (2 @Ignore skips).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.6 KiB
CMake
49 lines
1.6 KiB
CMake
# tests/cgal/CMakeLists.txt
|
|
#
|
|
# CGAL-dependent test target. Only built when -DWITH_CGAL=ON.
|
|
# Requires Boost (find_package(Boost REQUIRED) is called in the root CMakeLists).
|
|
#
|
|
# Run with:
|
|
# cmake -S code -B build -DWITH_CGAL=ON
|
|
# cmake --build build --target conformallab_cgal_tests
|
|
# ctest --test-dir build -R cgal
|
|
|
|
add_executable(conformallab_cgal_tests
|
|
# ── Phase 3a: mesh infrastructure ──────────────────────────────────────
|
|
test_conformal_mesh.cpp
|
|
|
|
# ── Phase 3b: HyperIdealFunctional ─────────────────────────────────────
|
|
test_hyper_ideal_functional.cpp
|
|
|
|
# ── Phase 3c: SphericalFunctional ─────────────────────────────────────
|
|
test_spherical_functional.cpp
|
|
)
|
|
|
|
target_include_directories(conformallab_cgal_tests SYSTEM PRIVATE
|
|
${CMAKE_SOURCE_DIR}/deps/eigen-3.4.0
|
|
${CMAKE_SOURCE_DIR}/deps/CGAL-6.1.1/include
|
|
${Boost_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_include_directories(conformallab_cgal_tests PRIVATE
|
|
${CMAKE_SOURCE_DIR}/include
|
|
)
|
|
|
|
target_compile_definitions(conformallab_cgal_tests PRIVATE
|
|
CGAL_DISABLE_GMP
|
|
CGAL_DISABLE_MPFR
|
|
)
|
|
|
|
# Suppress warnings from CGAL/Boost headers
|
|
target_compile_options(conformallab_cgal_tests PRIVATE
|
|
$<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-Wno-unused-parameter>
|
|
)
|
|
|
|
target_link_libraries(conformallab_cgal_tests PRIVATE GTest::gtest_main)
|
|
|
|
include(GoogleTest)
|
|
gtest_discover_tests(conformallab_cgal_tests
|
|
TEST_PREFIX "cgal."
|
|
DISCOVERY_TIMEOUT 60
|
|
)
|