From eb197427f2341642a474f7497f4e655d045a6b35 Mon Sep 17 00:00:00 2001 From: Daniel_M_Williams Date: Fri, 14 Aug 2020 18:51:54 -0400 Subject: [PATCH] [fix] tightens up calculation of adjacent SymmetricComponents --- .../sf/openrocket/rocketcomponent/SymmetricComponent.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java b/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java index f9d059abc..b5d704496 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java +++ b/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java @@ -585,7 +585,6 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou // (b) BodyTube -- for Parallel Stages & PodSets final RocketComponent grandParent = this.parent.getParent(); - // note: this is not guaranteed to _contain_ a stage... but that we're _searching_ for one. int searchParentIndex = grandParent.getChildPosition(this.parent); // position of stage w/in parent int searchSiblingIndex = this.parent.getChildPosition(this)-1; // guess at index of previous stage @@ -595,7 +594,6 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou if(searchParent instanceof ComponentAssembly){ while (0 <= searchSiblingIndex) { final RocketComponent searchSibling = searchParent.getChild(searchSiblingIndex); - if (searchSibling instanceof SymmetricComponent) { return (SymmetricComponent) searchSibling; } @@ -603,7 +601,9 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou } } --searchParentIndex; - searchSiblingIndex = searchParent.getChildCount() - 1; + if( 0 <= searchParentIndex){ + searchSiblingIndex = grandParent.getChild(searchParentIndex).getChildCount() - 1; + } } return null; } @@ -640,7 +640,7 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou } } ++searchParentIndex; - searchSiblingIndex = searchParent.getChildCount() - 1; + searchSiblingIndex = 0; } return null; }