X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet%2Fsf%2Fopenrocket%2Foptimization%2Frocketoptimization%2Fparameters%2FLandingDistanceParameter.java;h=cb387d714e7d285dd029375a9f3eb8c44f388820;hb=879b214e60c09d53b18f24116fbfae08fa10604c;hp=c5dc0061be63812b71d07ab61e1cba96924ad7cd;hpb=aba2f5f25981c5b24ca4d9c6a63ab381482f9e01;p=debian%2Fopenrocket diff --git a/src/net/sf/openrocket/optimization/rocketoptimization/parameters/LandingDistanceParameter.java b/src/net/sf/openrocket/optimization/rocketoptimization/parameters/LandingDistanceParameter.java index c5dc0061..cb387d71 100644 --- a/src/net/sf/openrocket/optimization/rocketoptimization/parameters/LandingDistanceParameter.java +++ b/src/net/sf/openrocket/optimization/rocketoptimization/parameters/LandingDistanceParameter.java @@ -1,16 +1,8 @@ package net.sf.openrocket.optimization.rocketoptimization.parameters; -import net.sf.openrocket.document.Simulation; import net.sf.openrocket.l10n.Translator; -import net.sf.openrocket.logging.LogHelper; -import net.sf.openrocket.optimization.general.OptimizationException; -import net.sf.openrocket.optimization.rocketoptimization.OptimizableParameter; +import net.sf.openrocket.simulation.FlightData; import net.sf.openrocket.simulation.FlightDataType; -import net.sf.openrocket.simulation.exception.MotorIgnitionException; -import net.sf.openrocket.simulation.exception.SimulationCancelledException; -import net.sf.openrocket.simulation.exception.SimulationException; -import net.sf.openrocket.simulation.exception.SimulationLaunchException; -import net.sf.openrocket.simulation.listeners.system.InterruptListener; import net.sf.openrocket.startup.Application; import net.sf.openrocket.unit.UnitGroup; @@ -19,9 +11,8 @@ import net.sf.openrocket.unit.UnitGroup; * * @author Sampo Niskanen */ -public class LandingDistanceParameter implements OptimizableParameter { +public class LandingDistanceParameter extends SimulationBasedParameter { - private static final LogHelper log = Application.getLogger(); private static final Translator trans = Application.getTranslator(); @Override @@ -30,25 +21,8 @@ public class LandingDistanceParameter implements OptimizableParameter { } @Override - public double computeValue(Simulation simulation) throws OptimizationException, InterruptedException { - try { - log.debug("Running simulation to evaluate rocket landing distance"); - simulation.simulate(new InterruptListener()); - double value = simulation.getSimulatedData().getBranch(0).getLast(FlightDataType.TYPE_POSITION_XY); - log.debug("Landing distance was " + value); - return value; - } catch (MotorIgnitionException e) { - // A problem with motor ignition will cause optimization to fail - throw new OptimizationException(e); - } catch (SimulationLaunchException e) { - // Other launch exceptions result in zero altitude - return Double.NaN; - } catch (SimulationCancelledException e) { - throw (InterruptedException) new InterruptedException("Optimization was interrupted").initCause(e); - } catch (SimulationException e) { - // Other exceptions fail - throw new OptimizationException(e); - } + protected double getResultValue(FlightData simulatedData) { + return simulatedData.getBranch(0).getLast(FlightDataType.TYPE_POSITION_XY); } @Override