refactor(engine): move fill and strategy code to dedicated namespaces
Move fill algorithms to OpenNest.Engine.Fill namespace: FillLinear, FillExtents, PairFiller, ShrinkFiller, Compactor, RemnantFiller, RemnantFinder, FillScore, Pattern, PatternTiler, PartBoundary, RotationAnalysis, AngleCandidateBuilder, and AccumulatingProgress. Move strategy layer to OpenNest.Engine.Strategies namespace: IFillStrategy, FillContext, FillStrategyRegistry, FillHelpers, and all built-in strategy implementations. Add using directives to all consuming files across Engine, UI, MCP, and Tests projects. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using OpenNest.Controls;
|
||||
using OpenNest.Engine.Fill;
|
||||
using OpenNest.Geometry;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using OpenNest.Controls;
|
||||
using OpenNest.Geometry;
|
||||
|
||||
namespace OpenNest.Actions
|
||||
{
|
||||
@@ -71,7 +72,7 @@ namespace OpenNest.Actions
|
||||
{
|
||||
if (plateView.ViewScale != lastScale)
|
||||
{
|
||||
parts.ForEach(p =>
|
||||
parts.ForEach(p =>
|
||||
{
|
||||
p.Update(plateView);
|
||||
p.Draw(e.Graphics);
|
||||
@@ -146,11 +147,11 @@ namespace OpenNest.Actions
|
||||
PushDirection hDir, vDir;
|
||||
switch (plateView.Plate.Quadrant)
|
||||
{
|
||||
case 1: hDir = PushDirection.Left; vDir = PushDirection.Down; break;
|
||||
case 2: hDir = PushDirection.Right; vDir = PushDirection.Down; break;
|
||||
case 3: hDir = PushDirection.Right; vDir = PushDirection.Up; break;
|
||||
case 4: hDir = PushDirection.Left; vDir = PushDirection.Up; break;
|
||||
default: hDir = PushDirection.Left; vDir = PushDirection.Down; break;
|
||||
case 1: hDir = PushDirection.Left; vDir = PushDirection.Down; break;
|
||||
case 2: hDir = PushDirection.Right; vDir = PushDirection.Down; break;
|
||||
case 3: hDir = PushDirection.Right; vDir = PushDirection.Up; break;
|
||||
case 4: hDir = PushDirection.Left; vDir = PushDirection.Up; break;
|
||||
default: hDir = PushDirection.Left; vDir = PushDirection.Down; break;
|
||||
}
|
||||
|
||||
// Phase 1: BB-only push to get past irregular geometry quickly.
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
using System;
|
||||
using OpenNest.Actions;
|
||||
using OpenNest.CNC;
|
||||
using OpenNest.Collections;
|
||||
using OpenNest.Engine.Fill;
|
||||
using OpenNest.Forms;
|
||||
using OpenNest.Geometry;
|
||||
using OpenNest.Math;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
@@ -9,12 +16,6 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using OpenNest.Actions;
|
||||
using OpenNest.CNC;
|
||||
using OpenNest.Collections;
|
||||
using OpenNest.Forms;
|
||||
using OpenNest.Geometry;
|
||||
using OpenNest.Math;
|
||||
using Action = OpenNest.Actions.Action;
|
||||
using Timer = System.Timers.Timer;
|
||||
|
||||
@@ -59,7 +60,7 @@ namespace OpenNest.Controls
|
||||
|
||||
public List<LayoutPart> SelectedParts;
|
||||
public ReadOnlyCollection<LayoutPart> Parts;
|
||||
|
||||
|
||||
public event EventHandler<ItemAddedEventArgs<Part>> PartAdded;
|
||||
public event EventHandler<ItemRemovedEventArgs<Part>> PartRemoved;
|
||||
public event EventHandler StatusChanged;
|
||||
@@ -381,7 +382,7 @@ namespace OpenNest.Controls
|
||||
e.Graphics.DrawLine(ColorScheme.OriginPen, origin.X, 0, origin.X, Height);
|
||||
e.Graphics.DrawLine(ColorScheme.OriginPen, 0, origin.Y, Width, origin.Y);
|
||||
}
|
||||
|
||||
|
||||
e.Graphics.TranslateTransform(origin.X, origin.Y);
|
||||
|
||||
DrawPlate(e.Graphics);
|
||||
@@ -1001,7 +1002,7 @@ namespace OpenNest.Controls
|
||||
{
|
||||
base.ZoomToPoint(pt, zoomFactor, false);
|
||||
|
||||
if (redraw)
|
||||
if (redraw)
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
using System;
|
||||
using OpenNest.Actions;
|
||||
using OpenNest.Collections;
|
||||
using OpenNest.Engine.BestFit;
|
||||
using OpenNest.Engine.Fill;
|
||||
using OpenNest.Geometry;
|
||||
using OpenNest.Gpu;
|
||||
using OpenNest.IO;
|
||||
using OpenNest.Properties;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
@@ -7,13 +15,6 @@ using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using OpenNest.Actions;
|
||||
using OpenNest.Collections;
|
||||
using OpenNest.Engine.BestFit;
|
||||
using OpenNest.Gpu;
|
||||
using OpenNest.Geometry;
|
||||
using OpenNest.IO;
|
||||
using OpenNest.Properties;
|
||||
|
||||
namespace OpenNest.Forms
|
||||
{
|
||||
@@ -812,7 +813,7 @@ namespace OpenNest.Forms
|
||||
|
||||
if (form.ShowDialog() != System.Windows.Forms.DialogResult.OK)
|
||||
return;
|
||||
|
||||
|
||||
var items = form.GetNestItems();
|
||||
|
||||
if (!items.Any(it => it.Quantity > 0))
|
||||
@@ -896,7 +897,7 @@ namespace OpenNest.Forms
|
||||
|
||||
private void SequenceAllPlates_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (activeForm == null)
|
||||
if (activeForm == null)
|
||||
return;
|
||||
|
||||
activeForm.AutoSequenceAllPlates();
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using OpenNest.Controls;
|
||||
using OpenNest.Engine.Fill;
|
||||
using OpenNest.Geometry;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using OpenNest.Controls;
|
||||
using OpenNest.Geometry;
|
||||
using GeoSize = OpenNest.Geometry.Size;
|
||||
|
||||
namespace OpenNest.Forms
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using OpenNest.Controls;
|
||||
using OpenNest.Engine.Fill;
|
||||
using OpenNest.Geometry;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using OpenNest.Controls;
|
||||
using OpenNest.Geometry;
|
||||
|
||||
namespace OpenNest.Forms
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user