diff --git a/core/src/net/sf/openrocket/rocketcomponent/RingComponent.java b/core/src/net/sf/openrocket/rocketcomponent/RingComponent.java index 5dbf4d5ba..18473586c 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/RingComponent.java +++ b/core/src/net/sf/openrocket/rocketcomponent/RingComponent.java @@ -179,8 +179,7 @@ public abstract class RingComponent extends StructuralComponent implements Coaxi if (1 == instanceCount ) { cg = new Coordinate( length/2, 0, 0, instanceMass ); }else{ - Coordinate offsets[] = getInstanceOffsets(); - for( Coordinate c : offsets) { + for( Coordinate c : getInstanceOffsets() ) { c = c.setWeight( instanceMass ); cg = cg.average(c); } diff --git a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java index 8329569c3..f6ef7fa22 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java +++ b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java @@ -1930,7 +1930,7 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab protected static final double ringMass(double outerRadius, double innerRadius, double length, double density) { - return Math.PI * (MathUtil.pow2(outerRadius) - MathUtil.pow2(innerRadius)) * + return Math.PI * Math.max(MathUtil.pow2(outerRadius) - MathUtil.pow2(innerRadius),0) * length * density; } diff --git a/swing/src/net/sf/openrocket/gui/dialogs/ScaleDialog.java b/swing/src/net/sf/openrocket/gui/dialogs/ScaleDialog.java index 0893ff55e..44d0a2df5 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/ScaleDialog.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/ScaleDialog.java @@ -392,7 +392,11 @@ public class ScaleDialog extends JDialog { scale.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + + final Rocket rocket = document.getRocket(); + rocket.enableEvents(false); doScale(); + rocket.enableEvents(true); ScaleDialog.this.document.getRocket().fireComponentChangeEvent( ComponentChangeEvent.AEROMASS_CHANGE); diff --git a/swing/src/net/sf/openrocket/gui/scalefigure/AbstractScaleFigure.java b/swing/src/net/sf/openrocket/gui/scalefigure/AbstractScaleFigure.java index faba2ee35..e9519cce4 100644 --- a/swing/src/net/sf/openrocket/gui/scalefigure/AbstractScaleFigure.java +++ b/swing/src/net/sf/openrocket/gui/scalefigure/AbstractScaleFigure.java @@ -185,7 +185,7 @@ public abstract class AbstractScaleFigure extends JPanel { * Updates the figure shapes and figure size. */ public void updateFigure() { - log.trace(String.format("____ Updating %s to: %g user scale, %g overall scale", this.getClass().getSimpleName(), this.getAbsoluteScale(), this.scale)); + log.trace(String.format("____ Updating %s to: %g user scale, %g overall scale", this.getClass().getSimpleName(), this.userScale, this.scale)); updateSubjectDimensions(); updateCanvasSize();