1 package net.sf.openrocket.simulation;
3 import net.sf.openrocket.simulation.exception.SimulationException;
5 public interface SimulationStepper {
8 * Initialize a simulation using this simulation stepper based on the provided
9 * current simulation status and launch conditions.
11 * @param status the current simulation status.
12 * @return a SimulationStatus suitable for simulating with this simulation stepper.
14 public SimulationStatus initialize(SimulationStatus status) throws SimulationException;
17 * Perform one simulation time step.
19 * @param status the current simulation status, of a type returned by {@link #initialize(SimulationStatus)}.
20 * @param maxTimeStep the maximum time step to take. This is an upper bound and can be used to limit a stepper
21 * from stepping over upcoming flight events (motor ignition etc).
23 public void step(SimulationStatus status, double maxTimeStep) throws SimulationException;