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