using OpenNest.Engine.Fill; using OpenNest.Geometry; using System; using System.Collections.Generic; using System.Threading; namespace OpenNest.Engine.Nfp { /// /// Result of a nest optimization run. /// public class OptimizationResult { /// /// The best placement sequence found. /// public List Sequence { get; set; } /// /// The score achieved by the best sequence. /// public FillScore Score { get; set; } /// /// Number of iterations performed. /// public int Iterations { get; set; } } /// /// Interface for nest optimization algorithms that search for the best /// part ordering and rotation to maximize plate utilization. /// public interface INestOptimizer { OptimizationResult Optimize(List items, Box workArea, NfpCache cache, Dictionary> candidateRotations, IProgress progress = null, CancellationToken cancellation = default); } }