Expand description
Geometric predicates, behind a trait.
See docs/DATA_MODEL.md §9. Algorithms are written against Predicates,
never against a concrete implementation, so the robustness strategy can be
swapped without touching them.
§What this does and does not buy
Exact predicates settle the polyhedral robustness problem: which side of a
plane a point is on, whether four points are coplanar, in-sphere tests for
Delaunay. Those questions have exact answers computable from the inputs, and
Exact gives them.
They do not settle the CAD problem. The intersection curve of two NURBS
surfaces is transcendental; there is no exact value to be exact about. That
is why per-entity tolerances exist (docs/DATA_MODEL.md §5) and why they
cannot be traded away for better predicates. Predicates make the decidable
parts decidable; tolerances carry the rest.
Use exact predicates where the question is genuinely combinatorial (triangulation, point-in-polygon, orientation of a planar facet), and do not reach for them expecting surface intersection to become robust.
Structs§
Enums§
- Sign
- The sign of a predicate’s determinant.
Traits§
- Predicates
- Orientation and incircle/insphere tests.