feat: geometry-aware convergence, both-axis search, remnant engine, fill cache
- Convergence loop now uses FillLinear internally to measure actual waste with geometry-aware spacing instead of bounding-box arithmetic - Each candidate pair is tried in both Row and Column orientations to find the shortest perpendicular dimension (more complete stripes) - CompleteStripesOnly flag drops partial stripes; remnant strip is filled by a full engine run (injected via CreateRemnantEngine) - ConvergeStripeAngleShrink tries N+1 narrower pairs as alternative - FillResultCache avoids redundant engine runs on same-sized remnants - CLAUDE.md: note to not commit specs/plans Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,7 @@ public class RowFillStrategy : IFillStrategy
|
||||
|
||||
public List<Part> Fill(FillContext context)
|
||||
{
|
||||
var filler = new StripeFiller(context, NestDirection.Horizontal);
|
||||
var filler = new StripeFiller(context, NestDirection.Horizontal) { CompleteStripesOnly = true };
|
||||
return filler.Fill();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user