diff --git a/core/src/net/sf/openrocket/simulation/SimulationOptions.java b/core/src/net/sf/openrocket/simulation/SimulationOptions.java index ba8110cd7..b1a16c18a 100644 --- a/core/src/net/sf/openrocket/simulation/SimulationOptions.java +++ b/core/src/net/sf/openrocket/simulation/SimulationOptions.java @@ -65,12 +65,12 @@ public class SimulationOptions implements ChangeSource, Cloneable { private double launchRodAngle = 0; /** Launch rod direction, 0 = north. */ + private double windDirection = Math.PI / 2; private double launchRodDirection = 0; private double windAverage = 2.0; private double windTurbulence = 0.1; - private double windDirection = Math.PI / 2; /* * SimulationOptions maintains the launch site parameters as separate double values, @@ -163,6 +163,9 @@ public class SimulationOptions implements ChangeSource, Cloneable { public double getLaunchRodDirection() { + if (launchIntoWind) { + this.setLaunchRodDirection(windDirection); + } return launchRodDirection; } @@ -229,6 +232,9 @@ public class SimulationOptions implements ChangeSource, Cloneable { public void setWindDirection(double direction) { direction = MathUtil.reduce360(direction); + if (launchIntoWind) { + this.setLaunchRodDirection(direction); + } if (MathUtil.equals(this.windDirection, direction)) return; this.windDirection = direction; diff --git a/swing/src/net/sf/openrocket/gui/simulation/SimulationConditionsPanel.java b/swing/src/net/sf/openrocket/gui/simulation/SimulationConditionsPanel.java index 0ba49a3fc..67c033426 100644 --- a/swing/src/net/sf/openrocket/gui/simulation/SimulationConditionsPanel.java +++ b/swing/src/net/sf/openrocket/gui/simulation/SimulationConditionsPanel.java @@ -392,30 +392,37 @@ public class SimulationConditionsPanel extends JPanel { // Direction: - label = new JLabel(trans.get("simedtdlg.lbl.Direction")); + JLabel directionLabel = new JLabel(trans.get("simedtdlg.lbl.Direction")); //// Direction of the launch rod. tip = trans.get("simedtdlg.lbl.ttip.Direction1") + UnitGroup.UNITS_ANGLE.toStringUnit(0) + " " + trans.get("simedtdlg.lbl.ttip.Direction2") + " " + UnitGroup.UNITS_ANGLE.toStringUnit(2*Math.PI) + " " + trans.get("simedtdlg.lbl.ttip.Direction3"); - label.setToolTipText(tip); - sub.add(label); + directionLabel.setToolTipText(tip); + sub.add(directionLabel); m = new DoubleModel(conditions, "LaunchRodDirection", 1.0, UnitGroup.UNITS_ANGLE, 0, 2*Math.PI); - spin = new JSpinner(m.getSpinnerModel()); - spin.setEditor(new SpinnerEditor(spin)); - spin.setToolTipText(tip); - sub.add(spin, "w 65lp!"); + JSpinner directionSpin = new JSpinner(m.getSpinnerModel()); + directionSpin.setEditor(new SpinnerEditor(directionSpin)); + directionSpin.setToolTipText(tip); + sub.add(directionSpin, "w 65lp!"); unit = new UnitSelector(m); unit.setToolTipText(tip); sub.add(unit, "growx"); - slider = new BasicSlider(m.getSliderModel(0, 2*Math.PI)); - slider.setToolTipText(tip); - sub.add(slider, "w 75lp, wrap"); + BasicSlider directionSlider = new BasicSlider(m.getSliderModel(0, 2*Math.PI)); + directionSlider.setToolTipText(tip); + sub.add(directionSlider, "w 75lp, wrap"); + intoWind.addEnableComponent(directionLabel, false); + intoWind.addEnableComponent(directionSpin, false); + intoWind.addEnableComponent(unit, false); + intoWind.addEnableComponent(directionSlider, false); + + + JButton restoreDefaults = new JButton(trans.get("simedtdlg.but.resettodefault"));