feat(engine): add IFillStrategy interface and FillContext
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using OpenNest.Geometry;
|
||||||
|
|
||||||
|
namespace OpenNest
|
||||||
|
{
|
||||||
|
public class FillContext
|
||||||
|
{
|
||||||
|
public NestItem Item { get; init; }
|
||||||
|
public Box WorkArea { get; init; }
|
||||||
|
public Plate Plate { get; init; }
|
||||||
|
public int PlateNumber { get; init; }
|
||||||
|
public CancellationToken Token { get; init; }
|
||||||
|
public IProgress<NestProgress> Progress { get; init; }
|
||||||
|
|
||||||
|
public List<Part> CurrentBest { get; set; }
|
||||||
|
public FillScore CurrentBestScore { get; set; }
|
||||||
|
public NestPhase WinnerPhase { get; set; }
|
||||||
|
public List<PhaseResult> PhaseResults { get; } = new();
|
||||||
|
public List<AngleResult> AngleResults { get; } = new();
|
||||||
|
|
||||||
|
public Dictionary<string, object> SharedState { get; } = new();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace OpenNest
|
||||||
|
{
|
||||||
|
public interface IFillStrategy
|
||||||
|
{
|
||||||
|
string Name { get; }
|
||||||
|
NestPhase Phase { get; }
|
||||||
|
int Order { get; }
|
||||||
|
List<Part> Fill(FillContext context);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user