1 package net.sf.openrocket.simulation.customexpression;
3 import java.util.ArrayList;
6 import net.sf.openrocket.logging.LogHelper;
7 import net.sf.openrocket.simulation.FlightDataBranch;
8 import net.sf.openrocket.simulation.SimulationStatus;
9 import net.sf.openrocket.simulation.exception.SimulationException;
10 import net.sf.openrocket.simulation.listeners.AbstractSimulationListener;
11 import net.sf.openrocket.startup.Application;
13 public class CustomExpressionSimulationListener extends AbstractSimulationListener {
15 private static final LogHelper log = Application.getLogger();
16 private final List<CustomExpression> expressions;
18 public CustomExpressionSimulationListener(List<CustomExpression> expressions) {
20 this.expressions = expressions;
24 public void postStep(SimulationStatus status) throws SimulationException {
25 if ( expressions == null || expressions.size() == 0 ) {
28 // Calculate values for custom expressions
29 FlightDataBranch data = status.getFlightData();
30 for (CustomExpression expression : expressions ) {
31 double value = expression.evaluateDouble(status);
32 //log.debug("Setting value of custom expression "+expression.toString()+" = "+value);
33 data.setValue(expression.getType(), value);
40 public boolean isSystemListener(){