From 56c9b17ff65bc0111b6da919678a0de056785f78 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Fri, 13 Mar 2026 10:23:05 -0400 Subject: [PATCH] feat(engine): integrate NFP phase into FindBestFill (async overload) Co-Authored-By: Claude Opus 4.6 --- OpenNest.Engine/NestEngine.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/OpenNest.Engine/NestEngine.cs b/OpenNest.Engine/NestEngine.cs index a9264cc..2d3e649 100644 --- a/OpenNest.Engine/NestEngine.cs +++ b/OpenNest.Engine/NestEngine.cs @@ -245,6 +245,18 @@ namespace OpenNest best = pairResult; ReportProgress(progress, NestPhase.Pairs, PlateNumber, best, workArea); } + + token.ThrowIfCancellationRequested(); + + // NFP phase (non-rectangular parts only) + var nfpResult = FillNfpBestFit(item, workArea); + Debug.WriteLine($"[FindBestFill] NFP: {nfpResult?.Count ?? 0} parts"); + + if (IsBetterFill(nfpResult, best, workArea)) + { + best = nfpResult; + ReportProgress(progress, NestPhase.Nfp, PlateNumber, best, workArea); + } } catch (OperationCanceledException) {