Skip to main content

Module predicates

Module predicates 

Source
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§

Exact
Adaptive-precision exact predicates.
Fast
Naive floating-point predicates.

Enums§

Sign
The sign of a predicate’s determinant.

Traits§

Predicates
Orientation and incircle/insphere tests.

Type Aliases§

P2
A point in the plane, as predicates see it.
P3
A point in space, as predicates see it.