What's Changed
- Fix B3 (Vec reverse iterator return types) and B1 (ABF lambda update index) by @csparker247 in #29
- Fix B7 (PlanGrad unused allocation) and B2 (ABFPlusPlus hardcoded 1.F) by @csparker247 in #30
- Fix B4 (Vec binary * and / constrained to arithmetic scalars) by @csparker247 in #31
- Fix B5 (is_file_type bounds check) and B6 (PLY vmap validation) by @csparker247 in #32
- Fix M4 (operator<< moved inside OpenABF namespace) by @csparker247 in #33
- Fix M1 (barycenter return type) and M2 (magnitude const) by @csparker247 in #34
- Fix M3: rename detail::erase_if to detail::filter by @csparker247 in #35
- perf: replace vector-returning iteration methods with lazy ranges (P1 + A2) by @csparker247 in #36
- docs: document insert_face boundary update behavior (A3) by @csparker247 in #38
- refactor: add [[nodiscard]] to gradient() and replace vIdx2vIntIdx map with vector (A4, P2) by @csparker247 in #37
- test: add double-precision parameterization tests (F4) by @csparker247 in #39
- feat: add configurable gradient threshold to ABF and ABFPlusPlus (A1) by @csparker247 in #40
- refactor: extract addContrib lambda in AngleBasedLSCM matrix assembly (A6) by @csparker247 in #41
- feat: add explicit pin selection to AngleBasedLSCM (A5) by @csparker247 in #43
- Deploy Doxygen docs to GitHub Pages by @Copilot in #61
- chore: bump version to v2.1.0 by @Copilot in #60
- Add two-stage release pipeline (RC + final) with downstream dispatch by @Copilot in #59
- feat: Hierarchical LSCM (HLSCM) - cascadic multigrid UV parameterization by @csparker247 in #44
- Change auto* to auto in trim_left/right by @ramcdona in #72
- Fix install CMake files in architecture independent directory by @bkmgit in #74
- Fix edges_ staleness in split_edge; rename detail::filter; clean up exceptions by @csparker247 in #79
- F3: HalfEdgeMesh::extract_connected_components() by @csparker247 in #80
- Add face_map to ExtractedComponent by @csparker247 in #81
- test(hlscm): verify levelRatio actually affects hierarchy (T8) by @csparker247 in #82
- test(hlscm): assert pinned vertex UVs in setPinnedVertices test (T6) by @csparker247 in #83
- docs(hlscm): mark detail::hlscm types as @internal (A9) by @csparker247 in #84
- test(hlscm): use curved mesh for ABFPlusPlusAnglePreservation (T7) by @csparker247 in #85
- test(hlscm): direct unit tests for internal HLSCM components (T5) by @csparker247 in #86
- feat: add sphere cap built-in mesh generator to benchmark (E2) by @csparker247 in #87
- refactor(A8): extract shared LSCM system-building utility by @csparker247 in #88
- chore: sync index.md status for closed Conductor tracks by @csparker247 in #89
- docs: clear remaining Doxygen warnings by @csparker247 in #90
- perf(lscm): benchmark IncompleteCholesky CG; keep SparseLU default by @csparker247 in #91
- perf(hlscm): cut per-collapse and per-level heap allocations by @csparker247 in #92
- feat(lscm): multi-pin UV constraints on ABLSCM and HLSCM by @csparker247 in #93
- refactor: align identifier naming with codebase convention (#94) by @csparker247 in #95
- feat(hlscm): static Compute() overload with hierarchy tuning by @csparker247 in #97
New Contributors
- @Copilot made their first contribution in #61
- @ramcdona made their first contribution in #72
- @bkmgit made their first contribution in #74
Full Changelog: v2.0.0...v2.1.0