Move PlacedPart to its own file. Replace tuple-based sequences with SequenceEntry struct for clarity. Add IProgress parameter to INestOptimizer. Add IFP caching to NfpCache to avoid recomputing inner fit polygons for the same drawing/rotation/workArea. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
25 lines
689 B
C#
25 lines
689 B
C#
namespace OpenNest.Engine.Nfp
|
|
{
|
|
/// <summary>
|
|
/// An entry in a placement sequence — identifies which drawing to place and at what rotation.
|
|
/// </summary>
|
|
public readonly struct SequenceEntry
|
|
{
|
|
public int DrawingId { get; }
|
|
public double Rotation { get; }
|
|
public Drawing Drawing { get; }
|
|
|
|
public SequenceEntry(int drawingId, double rotation, Drawing drawing)
|
|
{
|
|
DrawingId = drawingId;
|
|
Rotation = rotation;
|
|
Drawing = drawing;
|
|
}
|
|
|
|
public SequenceEntry WithRotation(double rotation)
|
|
{
|
|
return new SequenceEntry(DrawingId, rotation, Drawing);
|
|
}
|
|
}
|
|
}
|