geodetic computations
[debian/openrocket] / src / net / sf / openrocket / simulation / AbstractSimulationStepper.java
index 348feaa58e7f28845cee704b68c8fd7d4f367fe8..ea94f3b43eada649814a8f4593aad7aa6ce1baa5 100644 (file)
@@ -30,7 +30,7 @@ public abstract class AbstractSimulationStepper implements SimulationStepper {
                }
                
                // Compute conditions
-               double altitude = status.getRocketPosition().z + status.getSimulationConditions().getLaunchAltitude();
+               double altitude = status.getRocketPosition().z + status.getSimulationConditions().getLaunchSite().getAltitude();
                conditions = status.getSimulationConditions().getAtmosphericModel().getConditions(altitude);
                
                // Call post-listener
@@ -61,7 +61,7 @@ public abstract class AbstractSimulationStepper implements SimulationStepper {
                }
                
                // Compute conditions
-               double altitude = status.getRocketPosition().z + status.getSimulationConditions().getLaunchAltitude();
+               double altitude = status.getRocketPosition().z + status.getSimulationConditions().getLaunchSite().getAltitude();
                wind = status.getSimulationConditions().getWindModel().getWindVelocity(status.getSimulationTime(), altitude);
                
                // Call post-listener
@@ -91,8 +91,9 @@ public abstract class AbstractSimulationStepper implements SimulationStepper {
                }
                
                // Compute conditions
-               double altitude = status.getRocketPosition().z + status.getSimulationConditions().getLaunchAltitude();
-               gravity = status.getSimulationConditions().getGravityModel().getGravity(altitude);
+               //double altitude = status.getRocketPosition().z + status.getSimulationConditions().getLaunchAltitude();
+               //gravity = status.getSimulationConditions().getGravityModel().getGravity(altitude);
+               gravity = status.getSimulationConditions().getGravityModel().getGravity(status.getRocketWorldPosition());
                
                // Call post-listener
                gravity = SimulationListenerHelper.firePostGravityModel(status, gravity);
@@ -114,7 +115,7 @@ public abstract class AbstractSimulationStepper implements SimulationStepper {
        protected MassData calculateMassData(SimulationStatus status) throws SimulationException {
                MassData mass;
                Coordinate cg;
-               double longitudalInertia, rotationalInertia;
+               double longitudinalInertia, rotationalInertia;
                
                // Call pre-listener
                mass = SimulationListenerHelper.firePreMassCalculation(status);
@@ -124,15 +125,15 @@ public abstract class AbstractSimulationStepper implements SimulationStepper {
                
                MassCalculator calc = status.getSimulationConditions().getMassCalculator();
                cg = calc.getCG(status.getConfiguration(), status.getMotorConfiguration());
-               longitudalInertia = calc.getLongitudalInertia(status.getConfiguration(), status.getMotorConfiguration());
+               longitudinalInertia = calc.getLongitudinalInertia(status.getConfiguration(), status.getMotorConfiguration());
                rotationalInertia = calc.getRotationalInertia(status.getConfiguration(), status.getMotorConfiguration());
-               mass = new MassData(cg, longitudalInertia, rotationalInertia);
+               mass = new MassData(cg, longitudinalInertia, rotationalInertia);
                
                // Call post-listener
                mass = SimulationListenerHelper.firePostMassCalculation(status, mass);
                
                checkNaN(mass.getCG());
-               checkNaN(mass.getLongitudalInertia());
+               checkNaN(mass.getLongitudinalInertia());
                checkNaN(mass.getRotationalInertia());
                
                return mass;
@@ -208,7 +209,7 @@ public abstract class AbstractSimulationStepper implements SimulationStepper {
         */
        protected void checkNaN(Coordinate c) {
                if (c.isNaN()) {
-                       throw new BugException("Simulation resulted in not-a-number (NaN) value, please report a bug.");
+                       throw new BugException("Simulation resulted in not-a-number (NaN) value, please report a bug, c=" + c);
                }
        }
        
@@ -221,7 +222,7 @@ public abstract class AbstractSimulationStepper implements SimulationStepper {
         */
        protected void checkNaN(Quaternion q) {
                if (q.isNaN()) {
-                       throw new BugException("Simulation resulted in not-a-number (NaN) value, please report a bug.");
+                       throw new BugException("Simulation resulted in not-a-number (NaN) value, please report a bug, q=" + q);
                }
        }
 }