create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / simulation / listeners / SimulationComputationListener.java
1 package net.sf.openrocket.simulation.listeners;
2
3 import java.util.List;
4
5 import net.sf.openrocket.aerodynamics.AerodynamicForces;
6 import net.sf.openrocket.aerodynamics.FlightConditions;
7 import net.sf.openrocket.models.atmosphere.AtmosphericConditions;
8 import net.sf.openrocket.simulation.AccelerationData;
9 import net.sf.openrocket.simulation.FlightDataType;
10 import net.sf.openrocket.simulation.MassData;
11 import net.sf.openrocket.simulation.SimulationStatus;
12 import net.sf.openrocket.simulation.exception.SimulationException;
13 import net.sf.openrocket.util.Coordinate;
14
15 /**
16  * An interface containing listener callbacks relating to different computational aspects performed
17  * during flight.
18  * 
19  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
20  */
21 public interface SimulationComputationListener extends SimulationListener {
22
23
24         ////////  Computation/modeling related callbacks  ////////
25         
26         public AccelerationData preAccelerationCalculation(SimulationStatus status) throws SimulationException;
27         
28         public AccelerationData postAccelerationCalculation(SimulationStatus status, AccelerationData acceleration)
29         throws SimulationException;
30         
31         public AtmosphericConditions preAtmosphericModel(SimulationStatus status)
32         throws SimulationException;
33         
34         public AtmosphericConditions postAtmosphericModel(SimulationStatus status, AtmosphericConditions atmosphericConditions)
35         throws SimulationException;
36         
37         
38         public Coordinate preWindModel(SimulationStatus status) throws SimulationException;
39         
40         public Coordinate postWindModel(SimulationStatus status, Coordinate wind) throws SimulationException;
41         
42         
43         public double preGravityModel(SimulationStatus status) throws SimulationException;
44         
45         public double postGravityModel(SimulationStatus status, double gravity) throws SimulationException;
46         
47
48         public FlightConditions preFlightConditions(SimulationStatus status)
49         throws SimulationException;
50         
51         public FlightConditions postFlightConditions(SimulationStatus status, FlightConditions flightConditions)
52         throws SimulationException;
53         
54         
55         public AerodynamicForces preAerodynamicCalculation(SimulationStatus status)
56         throws SimulationException;
57         
58         public AerodynamicForces postAerodynamicCalculation(SimulationStatus status, AerodynamicForces forces)
59         throws SimulationException;
60         
61         public MassData preMassCalculation(SimulationStatus status) throws SimulationException;
62         
63         public MassData postMassCalculation(SimulationStatus status, MassData massData) throws SimulationException;
64
65
66         public double preSimpleThrustCalculation(SimulationStatus status) throws SimulationException;
67         
68         public double postSimpleThrustCalculation(SimulationStatus status, double thrust) throws SimulationException;
69
70         public FlightDataType[] getFlightDataTypes();
71 }