diff --git a/src/de/tud/kom/p2psim/impl/topology/movement/aerial/AerialMovementModelFactory.java b/src/de/tud/kom/p2psim/impl/topology/movement/aerial/AerialMovementModelFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..ff27ea92b0ea6d82a368ae137c209a5376c0c9e8 --- /dev/null +++ b/src/de/tud/kom/p2psim/impl/topology/movement/aerial/AerialMovementModelFactory.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005-2010 KOM – Multimedia Communications Lab + * + * This file is part of PeerfactSim.KOM. + * + * PeerfactSim.KOM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * PeerfactSim.KOM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with PeerfactSim.KOM. If not, see . + * + */ + +package de.tud.kom.p2psim.impl.topology.movement.aerial; + +import de.tud.kom.p2psim.api.topology.movement.UAVMovementModel; +import de.tud.kom.p2psim.impl.topology.component.UAVTopologyComponent; + +/** + * + */ +public interface AerialMovementModelFactory { + public UAVMovementModel createComponent(UAVTopologyComponent topologyComponent); +} diff --git a/src/de/tud/kom/p2psim/impl/topology/movement/aerial/MulticopterMovement.java b/src/de/tud/kom/p2psim/impl/topology/movement/aerial/MulticopterMovement.java index b768d7ee24f13b26629d1e783b7361092da6a3c5..c49c67cc93bbc99480fd24f8e4a5cfd55af2875c 100644 --- a/src/de/tud/kom/p2psim/impl/topology/movement/aerial/MulticopterMovement.java +++ b/src/de/tud/kom/p2psim/impl/topology/movement/aerial/MulticopterMovement.java @@ -455,4 +455,16 @@ public class MulticopterMovement implements UAVMovementModel { return maxPitchAngle; } + + /** + * Factory for this movement model + * + * @author Julian Zobel + * @version 1.0, 14.01.2020 + */ + public static class Factory implements AerialMovementModelFactory { + public UAVMovementModel createComponent(UAVTopologyComponent topologyComponent) { + return new MulticopterMovement(topologyComponent); + } + } } diff --git a/src/de/tud/kom/p2psim/impl/topology/movement/aerial/SimpleMulticopterMovement.java b/src/de/tud/kom/p2psim/impl/topology/movement/aerial/SimpleMulticopterMovement.java index 753619f5da23074549aa42cd8b13243566684269..8702ebb6b64d3f2e4e7b2a5ceea71a262522a1e9 100644 --- a/src/de/tud/kom/p2psim/impl/topology/movement/aerial/SimpleMulticopterMovement.java +++ b/src/de/tud/kom/p2psim/impl/topology/movement/aerial/SimpleMulticopterMovement.java @@ -29,7 +29,10 @@ import de.tud.kom.p2psim.impl.energy.components.ActuatorComponent; import de.tud.kom.p2psim.impl.energy.components.StatefulActuatorComponent; import de.tud.kom.p2psim.impl.topology.component.UAVTopologyComponent; import de.tud.kom.p2psim.impl.topology.util.PositionVector; +import de.tudarmstadt.maki.simonstrator.api.Host; import de.tudarmstadt.maki.simonstrator.api.Time; +import de.tudarmstadt.maki.simonstrator.api.component.HostComponent; +import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory; import de.tudarmstadt.maki.simonstrator.api.uavsupport.callbacks.ReachedLocationCallback; /** @@ -208,4 +211,16 @@ public class SimpleMulticopterMovement implements UAVMovementModel { public double horizontalMinVelocity() { return 0; } + + /** + * Factory for this movement model + * + * @author Julian Zobel + * @version 1.0, 14.01.2020 + */ + public static class Factory implements AerialMovementModelFactory { + public UAVMovementModel createComponent(UAVTopologyComponent topologyComponent) { + return new SimpleMulticopterMovement(topologyComponent); + } + } }