mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-12 20:54:15 -04:00
Point-in-material used exact Y comparisons, but rings are only nominally closed: capture admits closure seams and PEP-converted or rotated geometry carries sub-micro-inch vertex jogs. When a jog straddled the test ray's Y, the two edges at that shared vertex disagreed which side it was on and the parity flipped, so a point ten inches outside a material read as interior. LeadMaterialSnapshot reported leads as entering a neighbour they could not touch, and the enclosing-perimeter check refused to capture materials whose rings it misclassified. Snap the ray comparison by the admitted seam tolerance so both edges at a shared vertex decide together. Features larger than the tolerance still count, and containment of a point within the tolerance of an edge stays as ambiguous as before. On the 93-plate corpus 83 plates are untouched, one previously refused plate now plans and replays, and 48/93 plates reach Ready. Accepting more leads also changed one plate's first-found route to a longer rapid path; that is search ranking, recorded with the measurements. Also drops an extent-prefilter fast path measured at -6.8% corpus time: it cleared leads whose native contact was reported beyond any fixed bbox margin, which NearbyMaterialCheckTests deliberately pins as a refusal.