From 62140789a7021b07c57e2ac4aed4718a5aea5e11 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Mon, 16 Mar 2026 00:23:21 -0400 Subject: [PATCH] feat: add Part.HasManualLeadIns flag Co-Authored-By: Claude Sonnet 4.6 --- OpenNest.Core/Part.cs | 2 ++ OpenNest.Engine.Tests/PartFlagTests.cs | 32 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 OpenNest.Engine.Tests/PartFlagTests.cs diff --git a/OpenNest.Core/Part.cs b/OpenNest.Core/Part.cs index 56598f4..37b12f0 100644 --- a/OpenNest.Core/Part.cs +++ b/OpenNest.Core/Part.cs @@ -51,6 +51,8 @@ namespace OpenNest public Program Program { get; private set; } + public bool HasManualLeadIns { get; set; } + /// /// Gets the rotation of the part in radians. /// diff --git a/OpenNest.Engine.Tests/PartFlagTests.cs b/OpenNest.Engine.Tests/PartFlagTests.cs new file mode 100644 index 0000000..89b65e4 --- /dev/null +++ b/OpenNest.Engine.Tests/PartFlagTests.cs @@ -0,0 +1,32 @@ +using OpenNest.CNC; +using OpenNest.Geometry; +using Xunit; + +namespace OpenNest.Engine.Tests; + +public class PartFlagTests +{ + [Fact] + public void HasManualLeadIns_DefaultsFalse() + { + var pgm = new Program(); + pgm.Codes.Add(new RapidMove(new Vector(0, 0))); + var drawing = new Drawing("test", pgm); + var part = new Part(drawing); + + Assert.False(part.HasManualLeadIns); + } + + [Fact] + public void HasManualLeadIns_CanBeSet() + { + var pgm = new Program(); + pgm.Codes.Add(new RapidMove(new Vector(0, 0))); + var drawing = new Drawing("test", pgm); + var part = new Part(drawing); + + part.HasManualLeadIns = true; + + Assert.True(part.HasManualLeadIns); + } +}