diff --git a/OpenNest.Core/Bending/Bend.cs b/OpenNest.Core/Bending/Bend.cs index cb3776e..98114da 100644 --- a/OpenNest.Core/Bending/Bend.cs +++ b/OpenNest.Core/Bending/Bend.cs @@ -12,6 +12,9 @@ namespace OpenNest.Bending public double? Radius { get; set; } public string NoteText { get; set; } + [System.Text.Json.Serialization.JsonIgnore] + public Entity SourceEntity { get; set; } + public double Length => StartPoint.DistanceTo(EndPoint); public double AngleRadians => Angle.HasValue diff --git a/OpenNest.Tests/Bending/BendModelTests.cs b/OpenNest.Tests/Bending/BendModelTests.cs index 021ff59..f0bfa21 100644 --- a/OpenNest.Tests/Bending/BendModelTests.cs +++ b/OpenNest.Tests/Bending/BendModelTests.cs @@ -87,4 +87,30 @@ public class BendModelTests Assert.Contains("90", str); Assert.Contains("0.06", str); } + + [Fact] + public void SourceEntity_DefaultsToNull() + { + var bend = new Bend + { + StartPoint = new Vector(0, 0), + EndPoint = new Vector(10, 0), + Direction = BendDirection.Down, + Angle = 90 + }; + Assert.Null(bend.SourceEntity); + } + + [Fact] + public void SourceEntity_StoresReference() + { + var line = new Line(new Vector(0, 0), new Vector(10, 0)); + var bend = new Bend + { + StartPoint = line.StartPoint, + EndPoint = line.EndPoint, + SourceEntity = line + }; + Assert.Same(line, bend.SourceEntity); + } }