From 42c788063b84e96801739061bf3503feae3f6eaa Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Thu, 17 Jul 2025 01:36:21 +0200 Subject: [PATCH] fix(geometry/edit): Find first gear correctly, don't rely on edge order --- src/geometry/geometry.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/geometry/geometry.rs b/src/geometry/geometry.rs index 917ff8c..556e38b 100644 --- a/src/geometry/geometry.rs +++ b/src/geometry/geometry.rs @@ -546,7 +546,12 @@ impl< > Geometry { pub fn first_rail(&self, node: NodeIndex) -> Option { - self.all_rails(node).next() + self.all_rails(node).find(|bend| { + !self + .graph + .edges_directed(bend.petgraph_index(), Incoming) + .any(|edge| matches!(edge.weight(), GeometryLabel::Outer)) + }) } pub fn all_rails(&self, node: NodeIndex) -> impl Iterator + '_ {