refactor: replace VPattern/HPattern with unified FillGrid method
Consolidates two nearly-identical grid generation methods into a single FillGrid method with a columnMajor parameter. Fixes bug in HPattern where inner loop used rows instead of columns, and fixes FillNoRotation silently discarding results by not adding them to Bin.Items. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -52,12 +52,12 @@ namespace OpenNest.RectanglePacking
|
||||
|
||||
item.Location = bin.Location;
|
||||
|
||||
bin.Items.AddRange(VPattern(item, normalRows, normalColumns, int.MaxValue));
|
||||
bin.Items.AddRange(FillGrid(item, normalRows, normalColumns, int.MaxValue));
|
||||
|
||||
item.Location.X += item.Width * normalColumns;
|
||||
item.Rotate();
|
||||
|
||||
bin.Items.AddRange(VPattern(item, rotateRows, rotateColumns, int.MaxValue));
|
||||
bin.Items.AddRange(FillGrid(item, rotateRows, rotateColumns, int.MaxValue));
|
||||
|
||||
return bin;
|
||||
}
|
||||
@@ -77,12 +77,12 @@ namespace OpenNest.RectanglePacking
|
||||
|
||||
item.Location = bin.Location;
|
||||
|
||||
bin.Items.AddRange(VPattern(item, normalRows, normalColumns, int.MaxValue));
|
||||
bin.Items.AddRange(FillGrid(item, normalRows, normalColumns, int.MaxValue));
|
||||
|
||||
item.Location.Y += item.Height * normalRows;
|
||||
item.Rotate();
|
||||
|
||||
bin.Items.AddRange(VPattern(item, rotateRows, rotateColumns, int.MaxValue));
|
||||
bin.Items.AddRange(FillGrid(item, rotateRows, rotateColumns, int.MaxValue));
|
||||
|
||||
return bin;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user