Expand description
Exact boolean over general planar-faced solids (#77).
§Why this is not a BSP tree
A BSP boolean constructs split points recursively, so each generation of cuts is computed from coordinates that were themselves computed. Error compounds with depth and the exactness claim decays silently.
Here every fragment is carried as a polygon whose plane is one of the ORIGINAL input planes, never a derived one. A face is split only against input planes, so a vertex is at worst one intersection away from input data. Classification then asks a certified predicate which side of the other solid a fragment lies on.
§Collapsed fragments are not dropped
Split points are constructed in f64 (ADR 0045, plane_crossing), so
after many operations a vertex two operands should share can land a few
ULPs apart, and a split through it emits a fragment that encloses no
area. Deleting such fragments was tried and reverted (40b5069): the
chain then completes, but the holes it leaves make the shell integrate to
a plausibly wrong volume. A refusal is actionable; a wrong volume is
silent. Do not reintroduce a drop-based fix (#199).
Structs§
- Polyhedron
- A closed solid bounded by planar polygonal faces.
Enums§
- Boolean
Op - Which boolean to evaluate.
Functions§
- boolean_
polyhedra_ exact - Exact boolean over two planar-faced solids.
- triangulate
- Triangulate a polyhedron for measurement and diagnosis.