The helpers read every face of the fill as a record surface over its box, the loops'
(u, v) polygons from their exact pcurves, the rim from the free edges and curvature from
SurfaceEval::second; check_face takes the fill's faces (one, or the patches about a centre)
whose free edges lie on the body's edge curves. Expectations changed by the coordinator's
decision on loops of five or more edges: the pentagon fills as five patches (each rim edge
in halves, five spokes: at least 15 edges), the hexagon through a point as six patches with
18 edges. Every other assertion is kept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt
Body::mesh / mesh_plan / mesh_of and MeshTolerance (chord, display, display_of, export_of)
replace tessellate, tessellate_with, display_mesh*, display_plan*, reference_display_mesh_angular;
every caller in kernel, doc, engine, io, ui-egui, gpu and the CLI renamed mechanically; the
truck-mesher fallback, mesh_shells*, refined* removed; Body::new orients from the planner;
truck-meshalgo dropped from Cargo.toml with the tests of its hooks. Still to fix: trait imports
in tess/*, splitface/lumps/preview/step_in/boolean_record meshalgo uses, measure.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt