mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-11 05:14:13 -04:00
ContourEntrySelection: lazy bounded selection over one contour's ranked candidates. Greedy global rank order until the cap (default 16) fills or the finite catalogue ends; blocked and incomplete candidates never consume a slot, and once selection settles the untouched tail is never evaluated (EvaluatedCount/EvaluatedKeys pin the counts, not timings). At caps of 4+ a corrective scan represents every side of the candidate bounding rectangle that HAS a feasible candidate — lazily chasing each missing side and replacing the worst selected candidate only when every other covered side survives; one corner may cover two sides. The cap is never exceeded and points are never manufactured on infeasible sides; caps 1-3 obey cap+ranking first, as promised. Verdicts memoize per attempt; duplicate geometric points never take two slots. Honest metadata: Choices/EvaluatedCount/Shortfall/Reason with None, Exhausted and Incomplete kept distinct — 'no tested lead-in fits' is producible only from a fully evaluated Exhausted catalogue; incomplete checks and cancellation are never presented as geometric impossibility. Sides are exactly the ranker's bounding-rectangle geometry. No search changes and no larger search budget.