diff --git a/OpenNest.Engine/NestEngineRegistry.cs b/OpenNest.Engine/NestEngineRegistry.cs index 8363646..67ca728 100644 --- a/OpenNest.Engine/NestEngineRegistry.cs +++ b/OpenNest.Engine/NestEngineRegistry.cs @@ -21,10 +21,6 @@ namespace OpenNest "Strip-based nesting for mixed-drawing layouts", plate => new StripNestEngine(plate)); - Register("NFP", - "NFP-based mixed-part nesting with simulated annealing", - plate => new NfpNestEngine(plate)); - Register("Vertical Remnant", "Optimizes for largest right-side vertical drop", plate => new VerticalRemnantEngine(plate)); diff --git a/OpenNest.Engine/NfpNestEngine.cs b/OpenNest.Engine/NfpNestEngine.cs deleted file mode 100644 index 52ce97d..0000000 --- a/OpenNest.Engine/NfpNestEngine.cs +++ /dev/null @@ -1,65 +0,0 @@ -using OpenNest.Engine.Fill; -using OpenNest.Engine.Nfp; -using OpenNest.Geometry; -using System; -using System.Collections.Generic; -using System.Threading; - -namespace OpenNest -{ - public class NfpNestEngine : NestEngineBase - { - public NfpNestEngine(Plate plate) : base(plate) - { - } - - public override string Name => "NFP"; - - public override string Description => "NFP-based mixed-part nesting with simulated annealing"; - - public override List Fill(NestItem item, Box workArea, - IProgress progress, CancellationToken token) - { - var inner = new DefaultNestEngine(Plate); - return inner.Fill(item, workArea, progress, token); - } - - public override List Fill(List groupParts, Box workArea, - IProgress progress, CancellationToken token) - { - var inner = new DefaultNestEngine(Plate); - return inner.Fill(groupParts, workArea, progress, token); - } - - public override List PackArea(Box box, List items, - IProgress progress, CancellationToken token) - { - var inner = new DefaultNestEngine(Plate); - return inner.PackArea(box, items, progress, token); - } - - public override List Nest(List items, - IProgress progress, CancellationToken token) - { - if (items == null || items.Count == 0) - return new List(); - - var parts = AutoNester.Nest(items, Plate, progress, token); - - // Compact placed parts toward the origin to close gaps. - Compactor.Settle(parts, Plate.WorkArea(), Plate.PartSpacing); - - // Deduct placed quantities from original items. - foreach (var item in items) - { - if (item.Quantity <= 0) - continue; - - var placed = parts.FindAll(p => p.BaseDrawing.Name == item.Drawing.Name).Count; - item.Quantity = System.Math.Max(0, item.Quantity - placed); - } - - return parts; - } - } -}