]> git.gag.com Git - debian/openrocket/blobdiff - core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
Added new feature : user configurable custom expression evaluation for the simulation...
[debian/openrocket] / core / src / net / sf / openrocket / file / openrocket / OpenRocketSaver.java
index 0525a4ed58be061f68cbbe89071db7d130cb7a01..ac061150e1f16788eb7114f3dd311cc65ce7979b 100644 (file)
@@ -24,6 +24,7 @@ import net.sf.openrocket.rocketcomponent.RecoveryDevice.DeployEvent;
 import net.sf.openrocket.rocketcomponent.Rocket;
 import net.sf.openrocket.rocketcomponent.RocketComponent;
 import net.sf.openrocket.rocketcomponent.TubeCoupler;
+import net.sf.openrocket.simulation.CustomExpression;
 import net.sf.openrocket.simulation.FlightData;
 import net.sf.openrocket.simulation.FlightDataBranch;
 import net.sf.openrocket.simulation.FlightDataType;
@@ -322,10 +323,25 @@ public class OpenRocketSaver extends RocketSaver {
                
                writeln("<name>" + escapeXML(simulation.getName()) + "</name>");
                // TODO: MEDIUM: Other simulators/calculators
+               
                writeln("<simulator>RK4Simulator</simulator>");
                writeln("<calculator>BarrowmanCalculator</calculator>");
-               writeln("<conditions>");
-               indent++;
+               
+               // Write out custom expressions
+               if (!simulation.getCustomExpressions().isEmpty()){
+                       writeln("<customexpressions>"); indent++;
+                       for (CustomExpression expression : simulation.getCustomExpressions()){
+                               writeln("<expression>"); indent++;
+                               writeElement("name", expression.getName());
+                               writeElement("symbol", expression.getSymbol());
+                               writeElement("unit", expression.getUnit());
+                               writeElement("expressionstring", expression.getExpressionString());
+                               indent--; writeln("</expression>");
+                       }
+                       indent--; writeln("</customexpressions>");
+               }
+               
+               writeln("<conditions>"); indent++;
                
                writeElement("configid", cond.getMotorConfigurationID());
                writeElement("launchrodlength", cond.getLaunchRodLength());
@@ -359,7 +375,6 @@ public class OpenRocketSaver extends RocketSaver {
                        writeElement("listener", escapeXML(s));
                }
                
-               
                // Write basic simulation data
                
                FlightData data = simulation.getSimulatedData();