refactor: migrate WinForms callsites to NestEngineRegistry

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 21:11:11 -04:00
parent 01283d2b18
commit bd3984037c
3 changed files with 13 additions and 9 deletions

View File

@@ -47,7 +47,7 @@ namespace OpenNest.Actions
{
try
{
var engine = new NestEngine(plateView.Plate);
var engine = NestEngineRegistry.Create(plateView.Plate);
var parts = await Task.Run(() =>
engine.Fill(new NestItem { Drawing = drawing },
SelectedArea, progress, cts.Token));
@@ -61,7 +61,7 @@ namespace OpenNest.Actions
}
else
{
var engine = new NestEngine(plateView.Plate);
var engine = NestEngineRegistry.Create(plateView.Plate);
engine.Fill(new NestItem { Drawing = drawing }, SelectedArea);
plateView.Invalidate();
}

View File

@@ -833,7 +833,7 @@ namespace OpenNest.Controls
try
{
var engine = new NestEngine(Plate);
var engine = NestEngineRegistry.Create(Plate);
var parts = await Task.Run(() =>
engine.Fill(groupParts, workArea, progress, cts.Token));

View File

@@ -53,6 +53,9 @@ namespace OpenNest.Forms
if (GpuEvaluatorFactory.GpuAvailable)
BestFitCache.CreateSlideComputer = () => GpuEvaluatorFactory.CreateSlideComputer();
var enginesDir = Path.Combine(Application.StartupPath, "Engines");
NestEngineRegistry.LoadPlugins(enginesDir);
}
private Nest CreateDefaultNest()
@@ -794,7 +797,8 @@ namespace OpenNest.Forms
if (workArea.Width <= 0 || workArea.Length <= 0)
break;
var engine = new NestEngine(plate) { PlateNumber = plateCount };
var engine = NestEngineRegistry.Create(plate);
engine.PlateNumber = plateCount;
var parts = await Task.Run(() =>
engine.FillExact(item, workArea, progress, token));
@@ -826,10 +830,10 @@ namespace OpenNest.Forms
if (packItems.Count > 0 && workArea.Width > 0 && workArea.Length > 0
&& !token.IsCancellationRequested)
{
var engine = new NestEngine(plate);
var partsBefore = plate.Parts.Count;
engine.PackArea(workArea, packItems);
var packed = plate.Parts.Count - partsBefore;
var engine = NestEngineRegistry.Create(plate);
var packParts = engine.PackArea(workArea, packItems, null, CancellationToken.None);
plate.Parts.AddRange(packParts);
var packed = packParts.Count;
if (packed > 0)
{
@@ -962,7 +966,7 @@ namespace OpenNest.Forms
try
{
var plate = activeForm.PlateView.Plate;
var engine = new NestEngine(plate);
var engine = NestEngineRegistry.Create(plate);
var parts = await Task.Run(() =>
engine.Fill(new NestItem { Drawing = drawing },