From ccd58165b167e97bb6c06d37cbc7a7df04608473 Mon Sep 17 00:00:00 2001 From: StephenCWills Date: Thu, 6 Aug 2026 14:43:38 -0400 Subject: [PATCH] Remove logic to automatically infer where end segments are --- .../TransmissionElements/Line.cs | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/Source/Libraries/openXDA.Model/TransmissionElements/Line.cs b/Source/Libraries/openXDA.Model/TransmissionElements/Line.cs index 92dfcbb937..8b52bb1df1 100644 --- a/Source/Libraries/openXDA.Model/TransmissionElements/Line.cs +++ b/Source/Libraries/openXDA.Model/TransmissionElements/Line.cs @@ -130,10 +130,9 @@ private List QuerySegments() private List QueryPath() { // Start by finding all the ends - bool IsEnd(LineSegment segment) => + static bool IsEnd(LineSegment segment) => segment.IsEnd || - segment.ConnectedSegments.Count <= 1 || - IsForkedEnd(segment); + segment.ConnectedSegments.Count == 0; List lineEnds = [.. Segments.Where(IsEnd)]; @@ -192,22 +191,6 @@ bool IsEnd(LineSegment segment) => }).OrderByDescending(item => item.Length).ToList(); } - /// - /// Determines if all pairs of segments connected to the given segment are connected to each other. - /// - private bool IsForkedEnd(LineSegment segment) - { - bool AreDirectConnected(LineSegment s1, LineSegment s2) => s1.ConnectedSegments - .Any(connection => connection.ParentSegment == s2.ID || connection.ChildSegment == s2.ID); - - List nextSegments = [.. GetNextSegments(segment)]; - - return nextSegments - .SelectMany(_ => nextSegments, (S1, S2) => (S1, S2)) - .Where(tuple => tuple.S1.ID < tuple.S2.ID) - .All(tuple => AreDirectConnected(tuple.S1, tuple.S2)); - } - /// /// Attempts to walk the line from start to end. ///