1 package net.sf.openrocket.optimization.rocketoptimization.parameters;
3 import net.sf.openrocket.document.Simulation;
4 import net.sf.openrocket.optimization.general.OptimizationException;
5 import net.sf.openrocket.optimization.rocketoptimization.OptimizableParameter;
6 import net.sf.openrocket.simulation.FlightDataType;
7 import net.sf.openrocket.simulation.exception.SimulationException;
8 import net.sf.openrocket.simulation.listeners.system.ApogeeEndListener;
11 * An optimization parameter that computes the maximum altitude of a simulated flight.
13 * @author Sampo Niskanen <sampo.niskanen@iki.fi>
15 public class MaximumAltitudeParameter implements OptimizableParameter {
18 public String getName() {
19 return "Maximum altitude";
23 public double computeValue(Simulation simulation) throws OptimizationException {
25 simulation.simulate(new ApogeeEndListener());
26 return simulation.getSimulatedData().getBranch(0).getMaximum(FlightDataType.TYPE_ALTITUDE);
27 } catch (SimulationException e) {
28 throw new OptimizationException(e);