refactor(engine): extract AutoNester and reorganize NestEngine
Move NFP-based AutoNest logic (polygon extraction, rotation computation, simulated annealing) into dedicated AutoNester class. Consolidate duplicate FillWithPairs overloads, extract BuildCandidateAngles and BuildProgressSummary, reorganize NestEngine into logical sections. Update callers in Console, MCP tools, and MainForm to use AutoNester.Nest. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -762,7 +762,7 @@ namespace OpenNest.Forms
|
||||
activeForm.LoadLastPlate();
|
||||
|
||||
var parts = await Task.Run(() =>
|
||||
NestEngine.AutoNest(remaining, plate, token));
|
||||
AutoNester.Nest(remaining, plate, token));
|
||||
|
||||
if (parts.Count == 0)
|
||||
break;
|
||||
@@ -862,7 +862,9 @@ namespace OpenNest.Forms
|
||||
var progress = new Progress<NestProgress>(p =>
|
||||
{
|
||||
progressForm.UpdateProgress(p);
|
||||
activeForm.PlateView.SetTemporaryParts(p.BestParts);
|
||||
|
||||
if (p.BestParts != null)
|
||||
activeForm.PlateView.SetTemporaryParts(p.BestParts);
|
||||
});
|
||||
|
||||
progressForm.Show(this);
|
||||
@@ -922,7 +924,9 @@ namespace OpenNest.Forms
|
||||
var progress = new Progress<NestProgress>(p =>
|
||||
{
|
||||
progressForm.UpdateProgress(p);
|
||||
activeForm.PlateView.SetTemporaryParts(p.BestParts);
|
||||
|
||||
if (p.BestParts != null)
|
||||
activeForm.PlateView.SetTemporaryParts(p.BestParts);
|
||||
});
|
||||
|
||||
Action<List<Part>> onComplete = parts =>
|
||||
|
||||
Reference in New Issue
Block a user