ocs_doc_api: accurate GetVolume/GetCentroid via fine tessellation

- mass_properties: query path now uses fine mesh_body(0.1, 1e-4) for near-analytic
  volume/centroid; the render-mesh metrics cache (coarse display LOD) no longer
  shadows query accuracy. Memoized per (handle, epoch); cold-tess budget kept.
- IMPLEMENTATION.md: accuracy item done.
- Test accurate_volume_centroid_sphere_and_cube (sphere within 0.5% of 4/3*pi*r^3,
  centroid at centre, cube exact) -> 617 host lib green.
This commit is contained in:
Sebastian committed 2026-09-06 13:40:07 +02:00
1 parent 612e8e13e0
commit 6997dfe618
2 files changed
+48 -13

No files matched your search

+6 -3
View File
@@ -117,9 +117,12 @@ tested: 615 host lib + 8 crate unit + 3 spec↔wire consistency tests green.
## 🔧 Outstanding methods on supported families
| Method | Family | Status | Blocker |
|---|---|---|---|
| `GetCentroid`/`GetVolume` accuracy | Solid | mesh approx | render-mesh LOD tolerance vs query tolerance |
**Completed (accuracy):** `GetVolume`/`GetCentroid` now compute via a **fine
tessellation** (`mesh_body(0.1, 1e-4)`) for near-analytic results — the
render-mesh metrics cache is the coarse display LOD and no longer shadows query
accuracy; results memoized per (handle, geometry_epoch). Verified by
`accurate_volume_centroid_sphere_and_cube` (sphere volume within 0.5% of 4/3πr³,
centroid at centre, cube exact).
**Completed (outstanding methods):** `loft(profiles)` — `Operation::Loft{profiles}`,
resolves each profile to curve sets (all-or-nothing), `brep::loft` (`loft_two_profiles_*`