]> git.gag.com Git - debian/openrocket/blobdiff - src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
geodetic computation file storage
[debian/openrocket] / src / net / sf / openrocket / file / openrocket / OpenRocketSaver.java
index 7cadcf4bcf2a8043b9f6c30fb7eaab31f895d36c..6554a5375446b6dd9e6fccff9510d347cff05d7b 100644 (file)
@@ -25,7 +25,7 @@ import net.sf.openrocket.simulation.FlightData;
 import net.sf.openrocket.simulation.FlightDataBranch;
 import net.sf.openrocket.simulation.FlightDataType;
 import net.sf.openrocket.simulation.FlightEvent;
-import net.sf.openrocket.simulation.GUISimulationConditions;
+import net.sf.openrocket.simulation.SimulationOptions;
 import net.sf.openrocket.startup.Application;
 import net.sf.openrocket.util.BugException;
 import net.sf.openrocket.util.MathUtil;
@@ -130,7 +130,7 @@ public class OpenRocketSaver extends RocketSaver {
                // Size per component
                int componentCount = 0;
                Rocket rocket = doc.getRocket();
-               Iterator<RocketComponent> iterator = rocket.deepIterator(true);
+               Iterator<RocketComponent> iterator = rocket.iterator(true);
                while (iterator.hasNext()) {
                        iterator.next();
                        componentCount++;
@@ -193,8 +193,13 @@ public class OpenRocketSaver extends RocketSaver {
                 * Otherwise use version 1.0.
                 */
 
+               // Check if design has simulations defined (version 1.3)
+               if (document.getSimulationCount() > 0) {
+                       return FILE_VERSION_DIVISOR + 3;
+               }
+               
                // Check for motor definitions (version 1.2)
-               Iterator<RocketComponent> iterator = document.getRocket().deepIterator();
+               Iterator<RocketComponent> iterator = document.getRocket().iterator();
                while (iterator.hasNext()) {
                        RocketComponent c = iterator.next();
                        if (!(c instanceof MotorMount))
@@ -209,7 +214,7 @@ public class OpenRocketSaver extends RocketSaver {
                }
                
                // Check for fin tabs (version 1.1)
-               iterator = document.getRocket().deepIterator();
+               iterator = document.getRocket().iterator();
                while (iterator.hasNext()) {
                        RocketComponent c = iterator.next();
                        
@@ -274,7 +279,7 @@ public class OpenRocketSaver extends RocketSaver {
                        writeln("<subcomponents>");
                        indent++;
                        boolean emptyline = false;
-                       for (RocketComponent subcomponent : component) {
+                       for (RocketComponent subcomponent : component.getChildren()) {
                                if (emptyline)
                                        writeln("");
                                emptyline = true;
@@ -290,9 +295,8 @@ public class OpenRocketSaver extends RocketSaver {
        }
        
        
-
        private void saveSimulation(Simulation simulation, double timeSkip) throws IOException {
-               GUISimulationConditions cond = simulation.getConditions();
+               SimulationOptions cond = simulation.getOptions();
                
                writeln("<simulation status=\"" + enumToXMLName(simulation.getStatus()) + "\">");
                indent++;
@@ -312,6 +316,8 @@ public class OpenRocketSaver extends RocketSaver {
                writeElement("windturbulence", cond.getWindTurbulenceIntensity());
                writeElement("launchaltitude", cond.getLaunchAltitude());
                writeElement("launchlatitude", cond.getLaunchLatitude());
+               writeElement("launchlongitude", cond.getLaunchLongitude());
+               writeElement("geodeticmethod", cond.getGeodeticComputation().name().toLowerCase());
                
                if (cond.isISAAtmosphere()) {
                        writeln("<atmosphere model=\"isa\"/>");