From bb2ad98d989d6489cb6b89dafa4878d03d3a2638 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sun, 25 Jun 2023 02:19:51 +0200 Subject: [PATCH] [#1629] Show calculated mass & CG for non-overridden components --- .../rocketcomponent/RocketComponent.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java index 01b5b6820..a800a53df 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java +++ b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java @@ -562,6 +562,9 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab */ public final double getOverrideMass() { mutex.verify(); + if (!isMassOverridden()) { + overrideMass = getComponentMass(); + } return overrideMass; } @@ -612,6 +615,12 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab } checkState(); massOverridden = o; + + // If mass not overridden, set override mass to the component mass + if (!massOverridden) { + overrideMass = getComponentMass(); + } + updateChildrenMassOverriddenBy(); fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE); } @@ -627,6 +636,9 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab */ public final Coordinate getOverrideCG() { mutex.verify(); + if (!isCGOverridden()) { + overrideCGX = getComponentCG().x; + } return getComponentCG().setX(overrideCGX); } @@ -637,6 +649,9 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab */ public final double getOverrideCGX() { mutex.verify(); + if (!isCGOverridden()) { + overrideCGX = getComponentCG().x; + } return overrideCGX; } @@ -687,6 +702,12 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab } checkState(); cgOverridden = o; + + // If CG not overridden, set override CG to the component CG + if (!cgOverridden) { + overrideCGX = getComponentCG().x; + } + updateChildrenCGOverriddenBy(); fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE); }