fix(engine): use RemnantFinder for iterative remnant filling in StripNestEngine

Replace the single-pass guillotine split approach with RemnantFinder-based
iteration. After each fill, re-discover all free rectangles and try all
remaining items again until no more progress is made. This fills gaps that
were previously left empty after the initial strip + remainder layout.

Also change ActiveWorkArea border color from orange to red.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-16 13:11:28 -04:00
parent 51b482aefb
commit 3d23943b69
2 changed files with 43 additions and 65 deletions

View File

@@ -625,9 +625,9 @@ namespace OpenNest.Controls
};
rect.Y -= rect.Height;
using var pen = new Pen(Color.Orange, 2f)
using var pen = new Pen(Color.Red, 1f)
{
DashStyle = DashStyle.Dash
DashStyle = DashStyle.Dot
};
g.DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height);
}