Index: code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.cc	(revision 11774)
+++ 	(revision )
@@ -1,111 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program 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 2
- *   of the License, or (at your option) any later version.
- *
- *   This program 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 this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Oli Scheuss
- *   Co-authors:
- *      Damian 'Mozork' Frick
- *
- */
-
-#include "AutonomousDroneController.h"
-
-#include "worldentities/AutonomousDrone.h"
-#include "util/Math.h"
-
-namespace orxonox
-{
-    //TODO: Put your code in here:
-    // Create the factory for the drone controller.
-    RegisterClass(AutonomousDroneController);
-
-
-    /**
-    @brief
-        Constructor.
-    @param context
-        The context of this object.
-    */
-    AutonomousDroneController::AutonomousDroneController(Context* context) : Controller(context)
-    {
-        //TODO: Place your code here:
-        RegisterObject(AutonomousDroneController);
-
-
-        // Make sure to register the object and create the factory.        
-
-        // This checks that our context really is a drone
-        // and saves the pointer to the drone for the controlling commands
-        /* NOTE from Sandro: This is currently broken */
-        //AutonomousDrone* drone = dynamic_cast<AutonomousDrone*>(context);
-        //assert(drone != nullptr);
-        //this->setControllableEntity(drone);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    AutonomousDroneController::~AutonomousDroneController()
-    {
-
-    }
-
-    /**
-    @brief
-        The controlling happens here. This method defines what the controller has to do each tick.
-    @param dt
-        The duration of the tick.
-    */
-    void AutonomousDroneController::tick(float dt)
-    {
-        /* NOTE: Ugly hack by Sandro to make the tutorial work for the moment.
-         * This will be reverted once the framework update is complete
-         */
-        //AutonomousDrone *myDrone = static_cast<AutonomousDrone*>(this->getControllableEntity());
-        ObjectList<AutonomousDrone> objectList;
-        ObjectList<AutonomousDrone>::iterator it = objectList.begin();
-        AutonomousDrone* myDrone = *it;
-
-        if (myDrone != nullptr)
-        {
-
-           
-            //myDrone -> moveFrontBack(50*dt);
-            myDrone -> rotateRoll(2*dt);
-            
-            myDrone -> rotateYaw(2*dt);
-            
-                
-            //TODO: Place your code here:
-            // Steering commands
-            // You can use the commands provided by the AutonomousDrone to steer it:
-            // - moveFrontBack, moveRightLeft, moveUpDown
-            // - rotatePitch, rotateYaw, rotateRoll
-            // You will see, that the AutonomousDrone has two variants for each of these commands, one with a vector as input and one with just a float. Use the one with just the float as input.
-            // Apply them to myDrone (e.g. myDrone->rotateYaw(..) )
-            // dt is the time passed since the last call of the tick function in seconds.
-
-
-
-        }
-    }
-}
Index: code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.h	(revision 11774)
+++ 	(revision )
@@ -1,59 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program 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 2
- *   of the License, or (at your option) any later version.
- *
- *   This program 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 this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Oli Scheuss
- *   Co-authors:
- *      Damian 'Mozork' Frick
- *
- */
-
-#ifndef _AutonomousDroneController_H__
-#define _AutonomousDroneController_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "Controller.h"
-#include "tools/interfaces/Tickable.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Controller for the AutonomousDrone of the PPS tutorial.
-    @author
-        Oli Scheuss
-    */
-    class _OrxonoxExport AutonomousDroneController : public Controller, public Tickable
-    {
-        public:
-            AutonomousDroneController(Context* context);
-            virtual ~AutonomousDroneController();
-
-            virtual void tick(float dt); //!< The controlling happens here. This method defines what the controller has to do each tick.
-
-        protected:
-
-        private:
-    };
-}
-
-#endif /* _AutonomousDroneController_H__ */
Index: code/branches/Presentation_HS17_merge/src/orxonox/controllers/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/CMakeLists.txt	(revision 11774)
+++ code/branches/Presentation_HS17_merge/src/orxonox/controllers/CMakeLists.txt	(revision 11776)
@@ -19,5 +19,4 @@
   FightingController.cc
   MasterController.cc
-  AutonomousDroneController.cc
   ArrowController.cc
 )
Index: code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.cc	(revision 11774)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program 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 2
- *   of the License, or (at your option) any later version.
- *
- *   This program 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 this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "WaypointArrow.h"
-
-#include "core/CoreIncludes.h"
-#include "worldentities/ControllableEntity.h"
-
-namespace orxonox
-{
-    RegisterClass(WaypointArrow);
-
-    WaypointArrow::WaypointArrow(Context* context) : ArtificialController(context)
-    {
-        RegisterObject(WaypointController);
-        this->setAccuracy(100);
-    }
-
-    WaypointController::~WaypointController()
-    {
-        for (WorldEntity* waypoint : this->waypoints_)
-        {
-            if(waypoint)
-                waypoint->destroy();
-        }
-    }
-
-    void WaypointController::tick(float dt)
-    {
-        if (!this->isActive())
-            return;
-
-        if (this->waypoints_.size() == 0 || !this->getControllableEntity())
-            return;
-
-        if (this->waypoints_[this->currentWaypoint_]->getWorldPosition().squaredDistance(this->getControllableEntity()->getPosition()) <= this->squaredaccuracy_)
-            this->currentWaypoint_ = (this->currentWaypoint_ + 1) % this->waypoints_.size();
-
-        this->moveToPosition(this->waypoints_[this->currentWaypoint_]->getWorldPosition());
-    }
-
-}
Index: code/branches/Presentation_HS17_merge/src/orxonox/graphics/Model.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/graphics/Model.cc	(revision 11774)
+++ code/branches/Presentation_HS17_merge/src/orxonox/graphics/Model.cc	(revision 11776)
@@ -71,4 +71,5 @@
 
         XMLPortParam(Model, "lodLevel", setLodLevel, getLodLevel, xmlelement, mode);
+
         XMLPortParam(Model, "mesh", setMeshSource, getMeshSource, xmlelement, mode);
         XMLPortParam(Model, "renderQueueGroup", setRenderQueueGroup, getRenderQueueGroup, xmlelement, mode);
Index: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.cc	(revision 11774)
+++ 	(revision )
@@ -1,186 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program 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 2
- *   of the License, or (at your option) any later version.
- *
- *   This program 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 this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Oli Scheuss
- *   Co-authors:
- *      Damian 'Mozork' Frick
- *
- */
-
-#include "AutonomousDrone.h"
-
-#include "core/CoreIncludes.h"
-#include "BulletDynamics/Dynamics/btRigidBody.h"
-
-namespace orxonox
-{
-    //TODO: Put your code in here:
-    // Create the factory for the drone.
-    RegisterClass(AutonomousDrone);
-    /**
-    @brief
-        Constructor. Registers the object and initializes some default values.
-    @param creator
-        The creator of this object.
-    */
-    AutonomousDrone::AutonomousDrone(Context* context) : ControllableEntity(context)
-    {
-        //TODO: Put your code in here:
-        // Register the drone class to the core.
-        RegisterObject(AutonomousDrone);
-
-        this->myController_ = NULL;
-
-        this->localLinearAcceleration_.setValue(0, 0, 0);
-        this->localAngularAcceleration_.setValue(0, 0, 0);
-        this->primaryThrust_  = 100;
-        this->auxiliaryThrust_ = 100;
-        this->rotationThrust_ = 10;
-
-        this->setCollisionType(CollisionType::Dynamic);
-
-        //this->myController_ = new AutonomousDroneController(this); // Creates a new controller and passes our this pointer to it as creator.
-    }
-
-    /**
-    @brief
-        Destructor. Destroys controller, if present.
-    */
-    AutonomousDrone::~AutonomousDrone()
-    {
-        // Deletes the controller if the object was initialized and the pointer to the controller is not NULL.
-        if( this->isInitialized() && this->myController_ != NULL )
-            delete this->myController_;
-    }
-
-    /**
-    @brief
-        Method for creating a AutonomousDrone through XML.
-    */
-    void AutonomousDrone::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        // This calls the XMLPort function of the parent class
-        SUPER(AutonomousDrone, XMLPort, xmlelement, mode);
-
-        XMLPortParam(AutonomousDrone, "primaryThrust", setPrimaryThrust, getPrimaryThrust, xmlelement, mode);
-        //TODO: Put your code in here:
-        XMLPortParam(AutonomousDrone, "auxiliaryThrust", setAuxiliaryThrust, getAuxiliaryThrust, xmlelement, mode);
-        XMLPortParam(AutonomousDrone, "rotationThrust", setRotationThrust, getRotationThrust, xmlelement, mode);
-        // Make sure you add the variables auxiliaryThrust_ and rotationThrust_ to XMLPort.
-        // Variables can be added by the following command
-        // XMLPortParam(Classname, "xml-attribute-name (i.e. variablename)", setFunctionName, getFunctionName, xmlelement, mode);
-        // Also make sure that you also create the get- and set-functions in AutonomousDrone.h. As you can see, the get- and set-functions for the variable primaryThrust_ has already been specified there, so you can get your inspiration from there.
-        
-
-    }
-
-    /**
-    @brief
-        Defines which actions the AutonomousDrone has to take in each tick.
-    @param dt
-        The length of the tick.
-    */
-    void AutonomousDrone::tick(float dt)
-    {
-        SUPER(AutonomousDrone, tick, dt);
-
-        this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() * getMass() * this->auxiliaryThrust_);
-        this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() * getMass() * this->auxiliaryThrust_);
-        if (this->localLinearAcceleration_.z() > 0)
-            this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->auxiliaryThrust_);
-        else
-            this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->primaryThrust_);
-        this->physicalBody_->applyCentralForce(physicalBody_->getWorldTransform().getBasis() * this->localLinearAcceleration_);
-        this->localLinearAcceleration_.setValue(0, 0, 0);
-
-        this->localAngularAcceleration_ *= this->getLocalInertia() * this->rotationThrust_;
-        this->physicalBody_->applyTorque(physicalBody_->getWorldTransform().getBasis() * this->localAngularAcceleration_);
-        this->localAngularAcceleration_.setValue(0, 0, 0);
-    }
-
-    /**
-    @brief
-        Moves the AutonomousDrone in the negative z-direction (Front/Back) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void AutonomousDrone::moveFrontBack(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() - value.x);
-    }
-
-    /**
-    @brief
-        Moves the AutonomousDrone in the x-direction (Right/Left) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void AutonomousDrone::moveRightLeft(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() + value.x);
-    }
-
-    /**
-    @brief
-        Moves the AutonomousDrone in the y-direction (Up/Down) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void AutonomousDrone::moveUpDown(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() + value.x);
-    }
-
-    /**
-    @brief
-        Rotates the AutonomousDrone around the y-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void AutonomousDrone::rotateYaw(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() - value.x);
-    }
-
-    /**
-    @brief
-        Rotates the AutonomousDrone around the x-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void AutonomousDrone::rotatePitch(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x);
-    }
-
-    /**
-    @brief
-        Rotates the AutonomousDrone around the z-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void AutonomousDrone::rotateRoll(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setZ(this->localAngularAcceleration_.z() + value.x);
-    }
-
-}
Index: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.h	(revision 11774)
+++ 	(revision )
@@ -1,146 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program 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 2
- *   of the License, or (at your option) any later version.
- *
- *   This program 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 this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Oli Scheuss
- *   Co-authors:
- *      Damian 'Mozork' Frick
- *
- */
-
-#ifndef _AutonomousDrone_H__
-#define _AutonomousDrone_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/XMLPort.h"
-#include "controllers/AutonomousDroneController.h"
-
-#include "ControllableEntity.h"
-
-namespace orxonox {
-
-    /**
-    @brief
-        Drone, that is made to move upon a specified pattern.
-        This class was constructed for the PPS tutorial.
-    @author
-        Oli Scheuss
-    */
-    class _OrxonoxExport AutonomousDrone : public ControllableEntity
-    {
-        public:
-            AutonomousDrone(Context* context);
-            virtual ~AutonomousDrone();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating an AutonomousDrone through XML.
-            virtual void tick(float dt); //!< Defines which actions the AutonomousDrone has to take in each tick.
-
-            virtual void moveFrontBack(const Vector2& value);
-            virtual void moveRightLeft(const Vector2& value);
-            virtual void moveUpDown(const Vector2& value);
-
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
-
-            /**
-            @brief Moves the Drone in the Front/Back-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveFrontBack(float value)
-            { this->moveFrontBack(Vector2(value, 0)); }
-            /**
-            @brief Moves the Drone in the Right/Left-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveRightLeft(float value)
-            { this->moveRightLeft(Vector2(value, 0)); }
-            /**
-            @brief Moves the Drone in the Up/Down-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveUpDown(float value)
-            { this->moveUpDown(Vector2(value, 0)); }
-
-            /**
-            @brief Rotates the Drone around the y-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotateYaw(float value)
-            { this->rotateYaw(Vector2(value, 0)); }
-            /**
-            @brief Rotates the Drone around the x-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotatePitch(float value)
-            { this->rotatePitch(Vector2(value, 0)); }
-            /**
-            @brief Rotates the Drone around the z-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotateRoll(float value)
-            { this->rotateRoll(Vector2(value, 0)); }
-
-            /**
-            @brief Sets the primary thrust to the input amount.
-            @param thrust The amount of thrust.
-            */
-            inline void setPrimaryThrust( float thrust )
-                { this->primaryThrust_ = thrust; }
-            //TODO: Place your set-functions here.
-
-            inline void setAuxiliaryThrust ( float thrust )
-                { this -> auxiliaryThrust_ = thrust; }
-
-            inline void setRotationThrust (float thrust)
-                { this -> rotationThrust_ = thrust;}
-            // Hint: auxiliary thrust, rotation thrust.
-            
-            /**
-            @brief Gets the primary thrust to the input amount.
-            @return The amount of thrust.
-            */
-            inline float getPrimaryThrust()
-                { return this->primaryThrust_; }
-
-            inline float getAuxiliaryThrust()
-                { return this->auxiliaryThrust_;}
-
-            inline float getRotationThrust()
-                { return this->rotationThrust_;}
-
-            //TODO: Place your get-functions here.
-
-        private:
-            AutonomousDroneController *myController_; //!< The controller of the AutonomousDrone.
-
-            btVector3 localLinearAcceleration_; //!< The linear acceleration that is used to move the AutonomousDrone the next tick.
-            btVector3 localAngularAcceleration_; //!< The linear angular acceleration that is used to move the AutonomousDrone the next tick.
-            float primaryThrust_; //!< The amount of primary thrust. This is just used, when moving forward.
-            float auxiliaryThrust_; //!< The amount of auxiliary thrust. Used for all other movements (except for rotations).
-            float rotationThrust_; //!< The amount of rotation thrust. Used for rotations only.s
-        
-    };
-
-}
-
-#endif // _AutonomousDrone_H__
Index: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/CMakeLists.txt	(revision 11774)
+++ code/branches/Presentation_HS17_merge/src/orxonox/worldentities/CMakeLists.txt	(revision 11776)
@@ -14,5 +14,4 @@
   Actionpoint.cc
   NameableStaticEntity.cc
-  AutonomousDrone.cc
   Arrow.cc
 )
