d1ce6e97348bcad4861f4085116d61a9d555f7f6
[debian/openrocket] / core / src / net / sf / openrocket / simulation / customexpression / CustomExpressionSimulationListener.java
1 package net.sf.openrocket.simulation.customexpression;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import net.sf.openrocket.simulation.FlightDataBranch;
7 import net.sf.openrocket.simulation.SimulationStatus;
8 import net.sf.openrocket.simulation.exception.SimulationException;
9 import net.sf.openrocket.simulation.listeners.AbstractSimulationListener;
10
11 public class CustomExpressionSimulationListener extends AbstractSimulationListener {
12
13         private final List<CustomExpression> expressions;
14         
15         public CustomExpressionSimulationListener(List<CustomExpression> expressions) {
16                 super();
17                 this.expressions = expressions;
18         }
19
20         @Override
21         public void postStep(SimulationStatus status) throws SimulationException {
22                 if ( expressions == null || expressions.size() == 0 ) {
23                         return;
24                 }
25                 // Calculate values for custom expressions
26                 FlightDataBranch data = status.getFlightData();
27                 for (CustomExpression expression : expressions ) {
28                         data.setValue(expression.getType(), expression.evaluateDouble(status));
29                 }
30                 
31
32         }
33
34 }