The Y intersection had a real I3 violation that the M0.3 centroid- only check missed (parcels 0 and 7 overlapped by ~64.5 m²). This commit: - adds geo 0.28 as a dependency - replaces y_intersection_no_overlaps's centroid-in-polygon check with a rigorous polygon-polygon intersection test using geo::BooleanOps; adds rectangle_no_overlaps_rigorous as a positive-control test for the rectangle case - adds cleanup_block_parcel_overlaps pass at the end of subdivide_block: iterate parcels in placement order (corners first, regulars after), subtract previously-claimed territory from each via geo's polygon difference, drop empties, recover frontage edge index and edge_kinds for survivors - snaps polygon coords to a 1mm grid before handing to geo (helps geo's sweep-line invariants); strips collinear-triple and near-zero-length-edge artifacts from boolean output before feeding back into Polygon::new strict - wraps difference/union calls in catch_unwind so geo's occasional sweep-line panic on degenerate inputs falls back to a no-op instead of crashing subdivision Test status: 24 unit + 24 integration + 1 doc passing. Y figure visually cleaner — every parcel sits inside its own sub-block, no visible overlap between sub-blocks. Self-decisions checklist progress: rigorous I3 testing landed (checklist item ✓). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
Rust
63.1%
TeX
36.2%
HTML
0.4%
Makefile
0.3%