From 0cfc8e6d282475397a4d5bbf41480d1819a5a823 Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Mon, 18 Feb 2013 12:17:30 -0600 Subject: [PATCH] Fixed AOA tumble condition. AOA is stored in radians not degrees. --- .../openrocket/simulation/BasicEventSimulationEngine.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java index 2d5d7d070..b4b8f2fa4 100644 --- a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java +++ b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java @@ -39,6 +39,10 @@ public class BasicEventSimulationEngine implements SimulationEngine { private SimulationStepper landingStepper = new BasicLandingStepper(); private SimulationStepper tumbleStepper = new BasicTumbleStepper(); + // Constant holding 30 degress in radians. This is the AOA condition + // necessary to transistion to tumbling. + private final static double AOA_TUMBLE_CONDITION = Math.PI / 3.0; + private SimulationStepper currentStepper; private SimulationStatus status; @@ -204,10 +208,10 @@ public class BasicEventSimulationEngine implements SimulationEngine { double cp = status.getFlightData().getLast(FlightDataType.TYPE_CP_LOCATION); double cg = status.getFlightData().getLast(FlightDataType.TYPE_CG_LOCATION); double aoa = status.getFlightData().getLast(FlightDataType.TYPE_AOA); - if( cg > cp && aoa > 30 ) { + if( cg > cp && aoa > AOA_TUMBLE_CONDITION ) { addEvent( new FlightEvent(FlightEvent.Type.TUMBLE,status.getSimulationTime())); + status.setTumbling(true); } - status.setTumbling(true); }