Skip to main content

Module predicate

Module predicate 

Source
Expand description

OVL1 — the robust predicate layer.

Every overlay operation eventually calls this module. It is the boundary between “raw coordinates” and “topological decisions”: given points, it answers which side, inside which circle, and do these two segments meet and where.

Mirrors the Cartesian side / intersection strategies in boost/geometry/strategy/cartesian/ (side_by_triangle.hpp, intersection.hpp) and the robustness policies in boost/geometry/policies/robustness/.

Module layout (the OVL1 tasks, in dependency order):

  • orientation — OVL1.T1: the signed-area side predicate.
  • in_circle — OVL1.T2: the in-circle predicate used by is_valid and the turn graph.
  • segment_intersection — OVL1.T3: segment-segment intersection returning the meeting point(s).
  • range_guard — OVL1.T4: the coordinate-range robustness gate that enforces the “exact arithmetic, no rescale” policy.

Re-exports§

pub use in_circle::in_circle_2d;
pub use orientation::Sign;
pub use orientation::orientation_2d;
pub use range_guard::RangeError;
pub use range_guard::SAFE_ABS_MAX;
pub use range_guard::coordinate_in_range;
pub use range_guard::polygon_in_range;
pub use segment_intersection::SegmentIntersection;
pub use segment_intersection::segment_intersection;

Modules§

in_circle
OVL1.T2 — the in-circle predicate.
orientation
OVL1.T1 — the orientation (side) predicate.
range_guard
OVL1.T4 — the coordinate-range robustness gate.
segment_intersection
OVL1.T3 — segment-segment intersection.