pub fn segments_intersect( p1: &Point2D, p2: &Point2D, p3: &Point2D, p4: &Point2D, ) -> bool
Test if two line segments (p1,p2) and (p3,p4) intersect. Uses orientation-based predicates.