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