[Orxonox-commit 6347] r11004 - in code/branches/cpp11_v2/src: modules/objects modules/towerdefense modules/weapons/projectiles orxonox/worldentities orxonox/worldentities/pawns

landauf at orxonox.net landauf at orxonox.net
Wed Dec 30 22:07:10 CET 2015


Author: landauf
Date: 2015-12-30 22:07:09 +0100 (Wed, 30 Dec 2015)
New Revision: 11004

Modified:
   code/branches/cpp11_v2/src/modules/objects/Turret.cc
   code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseEnemy.cc
   code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseTower.cc
   code/branches/cpp11_v2/src/modules/weapons/projectiles/GravityBomb.cc
   code/branches/cpp11_v2/src/modules/weapons/projectiles/IceGunProjectile.cc
   code/branches/cpp11_v2/src/modules/weapons/projectiles/LightningGunProjectile.cc
   code/branches/cpp11_v2/src/modules/weapons/projectiles/Projectile.cc
   code/branches/cpp11_v2/src/modules/weapons/projectiles/Rocket.cc
   code/branches/cpp11_v2/src/modules/weapons/projectiles/RocketOld.cc
   code/branches/cpp11_v2/src/modules/weapons/projectiles/SimpleRocket.cc
   code/branches/cpp11_v2/src/orxonox/worldentities/Drone.cc
   code/branches/cpp11_v2/src/orxonox/worldentities/MobileEntity.cc
   code/branches/cpp11_v2/src/orxonox/worldentities/StaticEntity.cc
   code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.cc
   code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.h
   code/branches/cpp11_v2/src/orxonox/worldentities/pawns/FpsPlayer.cc
   code/branches/cpp11_v2/src/orxonox/worldentities/pawns/SpaceShip.cc
Log:
using strongly typed enum class in WorldEntity

Modified: code/branches/cpp11_v2/src/modules/objects/Turret.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/Turret.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/objects/Turret.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -277,7 +277,7 @@
             //TODO: make the rotation better (constant velocity etc.). At the moment, the turret rotates
             //slower the closer it is to the destination
             Quaternion drot = Quaternion::nlerp(dt*this->rotationThrust_/20.f, Quaternion::IDENTITY, this->rotation_);
-            this->rotate(drot, WorldEntity::World);
+            this->rotate(drot, WorldEntity::TransformSpace::World);
             this->rotation_ = Quaternion::IDENTITY;
         }
 

Modified: code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseEnemy.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseEnemy.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseEnemy.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -26,7 +26,7 @@
     {
         RegisterObject(TowerDefenseEnemy);
 
-        this->setCollisionType(WorldEntity::Dynamic);
+        this->setCollisionType(WorldEntity::CollisionType::Dynamic);
         //needed to keep track of the PlayerStats coded in TowerDefense.h
         this->td = orxonox_cast<TowerDefense*>(this->getGametype());
         once_ = false;

Modified: code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseTower.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseTower.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/towerdefense/TowerDefenseTower.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -25,7 +25,7 @@
     {
         RegisterObject(TowerDefenseTower);
         game_ =nullptr;
-        this->setCollisionType(WorldEntity::None);
+        this->setCollisionType(WorldEntity::CollisionType::None);
         upgrade = 1;
 
         //this->removeAllEngines();

Modified: code/branches/cpp11_v2/src/modules/weapons/projectiles/GravityBomb.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/weapons/projectiles/GravityBomb.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/weapons/projectiles/GravityBomb.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -27,7 +27,7 @@
                 //Define CollisionType of the bomb
                 this->timeToLife_= LIFETIME;
                 this->setCollisionResponse(false);
-                this->setCollisionType(WorldEntity::Dynamic);
+                this->setCollisionType(WorldEntity::CollisionType::Dynamic);
                 this->enableCollisionCallback();
 
                 //Add Collision Shape

Modified: code/branches/cpp11_v2/src/modules/weapons/projectiles/IceGunProjectile.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/weapons/projectiles/IceGunProjectile.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/weapons/projectiles/IceGunProjectile.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -88,7 +88,7 @@
 
             Vector3 offset = this->getWorldPosition() - otherObject->getWorldPosition();
             freezer->setPosition(Vector3(0,0,0));
-            freezer->translate(offset, WorldEntity::World);
+            freezer->translate(offset, WorldEntity::TransformSpace::World);
             // Start the freezing effect.
             freezer->startFreezing();
         }

Modified: code/branches/cpp11_v2/src/modules/weapons/projectiles/LightningGunProjectile.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/weapons/projectiles/LightningGunProjectile.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/weapons/projectiles/LightningGunProjectile.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -47,7 +47,7 @@
 
         this->textureIndex_ = 1;
         this->setMass(2);
-        this->setCollisionType(Dynamic);
+        this->setCollisionType(CollisionType::Dynamic);
         this->maxTextureIndex_ = 8;
         this->textureTimer_.setTimer(0.01f, true, createExecutor(createFunctor(&LightningGunProjectile::changeTexture, this)));
 

Modified: code/branches/cpp11_v2/src/modules/weapons/projectiles/Projectile.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/weapons/projectiles/Projectile.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/weapons/projectiles/Projectile.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -56,7 +56,7 @@
             this->setMass(1.0f);
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Dynamic);
+            this->setCollisionType(CollisionType::Dynamic);
 
             // Create a sphere collision shape and attach it to the projectile.
             collisionShape_ = new SphereCollisionShape(this->getContext());

Modified: code/branches/cpp11_v2/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/weapons/projectiles/Rocket.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/weapons/projectiles/Rocket.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -69,7 +69,7 @@
 
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->setVelocity(0,0,-100);
 
             // Create rocket model
@@ -91,7 +91,7 @@
 
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape
             ConeCollisionShape* collisionShape = new ConeCollisionShape(this->getContext());

Modified: code/branches/cpp11_v2/src/modules/weapons/projectiles/RocketOld.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/weapons/projectiles/RocketOld.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/weapons/projectiles/RocketOld.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -69,7 +69,7 @@
 
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->setVelocity(0,0,-100);
 
             // Create RocketOld model
@@ -91,7 +91,7 @@
 
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape
             ConeCollisionShape* collisionShape = new ConeCollisionShape(this->getContext());

Modified: code/branches/cpp11_v2/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/weapons/projectiles/SimpleRocket.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/modules/weapons/projectiles/SimpleRocket.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -69,7 +69,7 @@
 
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->fuel_ = true;
 
             // Create rocket model.
@@ -86,7 +86,7 @@
             this->fire_->setSource("Orxonox/simplerocketfire");
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape.
             // TODO: fix the orientation and size of this collision shape to match the rocket

Modified: code/branches/cpp11_v2/src/orxonox/worldentities/Drone.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/Drone.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/Drone.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -48,7 +48,7 @@
         this->localLinearAcceleration_.setValue(0, 0, 0);
         this->localAngularAcceleration_.setValue(0, 0, 0);
         this->setRadarVisibility(false);
-        this->setCollisionType(WorldEntity::Dynamic);
+        this->setCollisionType(WorldEntity::CollisionType::Dynamic);
 
         myController_ = new DroneController(this->getContext()); //!< Creates a new controller and passes our this pointer to it as creator.
         myController_->setDrone(this);

Modified: code/branches/cpp11_v2/src/orxonox/worldentities/MobileEntity.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/MobileEntity.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/MobileEntity.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -188,7 +188,7 @@
 
     bool MobileEntity::isCollisionTypeLegal(WorldEntity::CollisionType type) const
     {
-        if (type == WorldEntity::Static)
+        if (type == WorldEntity::CollisionType::Static)
         {
             orxout(internal_warning) << "Cannot tell a MobileEntity to have static collision type! Ignoring." << endl;
             assert(false); // Only in debug mode

Modified: code/branches/cpp11_v2/src/orxonox/worldentities/StaticEntity.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/StaticEntity.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/StaticEntity.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -94,7 +94,7 @@
 
     bool StaticEntity::isCollisionTypeLegal(WorldEntity::CollisionType type) const
     {
-        if (type == WorldEntity::Kinematic || type == WorldEntity::Dynamic)
+        if (type == WorldEntity::CollisionType::Kinematic || type == WorldEntity::CollisionType::Dynamic)
         {
             orxout(internal_warning) << "Cannot tell a StaticEntity to have kinematic or dynamic collision type! Ignoring." << endl;
             assert(false); // Only in debug mode

Modified: code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -55,9 +55,9 @@
     const Vector3 WorldEntity::UP    = Vector3::UNIT_Y;
 
     // Be sure we don't do bad conversions
-    static_assert((int)Ogre::Node::TS_LOCAL  == (int)WorldEntity::Local,  "check enum");
-    static_assert((int)Ogre::Node::TS_PARENT == (int)WorldEntity::Parent, "check enum");
-    static_assert((int)Ogre::Node::TS_WORLD  == (int)WorldEntity::World,  "check enum");
+    static_assert((int)Ogre::Node::TS_LOCAL  == (int)WorldEntity::TransformSpace::Local,  "check enum");
+    static_assert((int)Ogre::Node::TS_PARENT == (int)WorldEntity::TransformSpace::Parent, "check enum");
+    static_assert((int)Ogre::Node::TS_WORLD  == (int)WorldEntity::TransformSpace::World,  "check enum");
 
     RegisterAbstractClass(WorldEntity).inheritsFrom<BaseObject>().inheritsFrom<Synchronisable>();
 
@@ -94,8 +94,8 @@
         this->bPhysicsActiveBeforeAttaching_ = false;
         this->collisionShape_ = new WorldEntityCollisionShape(this->getContext());
         this->collisionShape_->setWorldEntityOwner(this);
-        this->collisionType_             = None;
-        this->collisionTypeSynchronised_ = None;
+        this->collisionType_             = CollisionType::None;
+        this->collisionTypeSynchronised_ = CollisionType::None;
         this->mass_                 = 1.0f;
         this->childrenMass_         = 0;
         // Using bullet default values
@@ -206,7 +206,7 @@
                                                 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionCallbackActivityChanged));
         registerVariable(this->bCollisionResponseActive_,
                                                 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionResponseActivityChanged));
-        registerVariable((int&)this->collisionTypeSynchronised_,
+        registerVariable(this->collisionTypeSynchronised_,
                                                 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionTypeChanged));
         registerVariable(this->bPhysicsActiveSynchronised_,
                                                 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::physicsActivityChanged));
@@ -321,10 +321,10 @@
     */
     void WorldEntity::collisionTypeChanged()
     {
-        if (this->collisionTypeSynchronised_ != Dynamic &&
-            this->collisionTypeSynchronised_ != Kinematic &&
-            this->collisionTypeSynchronised_ != Static &&
-            this->collisionTypeSynchronised_ != None)
+        if (this->collisionTypeSynchronised_ != CollisionType::Dynamic &&
+            this->collisionTypeSynchronised_ != CollisionType::Kinematic &&
+            this->collisionTypeSynchronised_ != CollisionType::Static &&
+            this->collisionTypeSynchronised_ != CollisionType::None)
         {
             orxout(internal_error) << "Error when collsion Type was received over network. Unknown enum value:" << this->collisionTypeSynchronised_ << endl;
         }
@@ -680,14 +680,14 @@
     {
         switch (relativeTo)
         {
-        case WorldEntity::Local:
+        case TransformSpace::Local:
             // position is relative to parent so transform downwards
             this->setPosition(this->getPosition() + this->getOrientation() * distance);
             break;
-        case WorldEntity::Parent:
+        case TransformSpace::Parent:
             this->setPosition(this->getPosition() + distance);
             break;
-        case WorldEntity::World:
+        case TransformSpace::World:
             // position is relative to parent so transform upwards
             if (this->node_->getParent())
                 setPosition(getPosition() + (node_->getParent()->_getDerivedOrientation().Inverse() * distance)
@@ -710,14 +710,14 @@
     {
         switch(relativeTo)
         {
-        case WorldEntity::Local:
+        case TransformSpace::Local:
             this->setOrientation(this->getOrientation() * rotation);
             break;
-        case WorldEntity::Parent:
+        case TransformSpace::Parent:
             // Rotations are normally relative to local axes, transform up
             this->setOrientation(rotation * this->getOrientation());
             break;
-        case WorldEntity::World:
+        case TransformSpace::World:
             // Rotations are normally relative to local axes, transform up
             this->setOrientation(this->getOrientation() * this->getWorldOrientation().Inverse()
                 * rotation * this->getWorldOrientation());
@@ -740,13 +740,13 @@
         Vector3 origin(0, 0, 0);
         switch (relativeTo)
         {
-        case WorldEntity::Local:
+        case TransformSpace::Local:
             origin = Vector3::ZERO;
             break;
-        case WorldEntity::Parent:
+        case TransformSpace::Parent:
             origin = this->getPosition();
             break;
-        case WorldEntity::World:
+        case TransformSpace::World:
             origin = this->getWorldPosition();
             break;
         }
@@ -830,7 +830,7 @@
             bReactivatePhysics = false;
 
         // Check whether we have to create or destroy.
-        if (type != None && this->collisionType_ == None)
+        if (type != CollisionType::None && this->collisionType_ == CollisionType::None)
         {
 /*
 HACK HACK HACK
@@ -848,31 +848,31 @@
             this->physicalBody_->setUserPointer(this);
             this->physicalBody_->setActivationState(DISABLE_DEACTIVATION);
         }
-        else if (type == None && this->collisionType_ != None)
+        else if (type == CollisionType::None && this->collisionType_ != CollisionType::None)
         {
             // Destroy rigid body
             assert(this->physicalBody_);
             deactivatePhysics();
             delete this->physicalBody_;
             this->physicalBody_ = nullptr;
-            this->collisionType_ = None;
-            this->collisionTypeSynchronised_ = None;
+            this->collisionType_ = CollisionType::None;
+            this->collisionTypeSynchronised_ = CollisionType::None;
             return;
         }
 
         // Change type
         switch (type)
         {
-        case Dynamic:
+        case CollisionType::Dynamic:
             this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT & !btCollisionObject::CF_KINEMATIC_OBJECT);
             break;
-        case Kinematic:
+        case CollisionType::Kinematic:
             this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT) | btCollisionObject::CF_KINEMATIC_OBJECT);
             break;
-        case Static:
+        case CollisionType::Static:
             this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_KINEMATIC_OBJECT) | btCollisionObject::CF_STATIC_OBJECT);
             break;
-        case None:
+        case CollisionType::None:
             assert(false); // Doesn't happen
             return;
         }
@@ -894,13 +894,13 @@
         const std::string& typeStrLower = getLowercase(typeStr);
         CollisionType type;
         if (typeStrLower == "dynamic")
-            type = Dynamic;
+            type = CollisionType::Dynamic;
         else if (typeStrLower == "static")
-            type = Static;
+            type = CollisionType::Static;
         else if (typeStrLower == "kinematic")
-            type = Kinematic;
+            type = CollisionType::Kinematic;
         else if (typeStrLower == "none")
-            type = None;
+            type = CollisionType::None;
         else
             ThrowException(ParseError, std::string("Attempting to set an unknown collision type: '") + typeStr + "'.");
         this->setCollisionType(type);
@@ -911,13 +911,13 @@
     {
         switch (this->getCollisionType())
         {
-            case Dynamic:
+            case CollisionType::Dynamic:
                 return "dynamic";
-            case Kinematic:
+            case CollisionType::Kinematic:
                 return "kinematic";
-            case Static:
+            case CollisionType::Static:
                 return "static";
-            case None:
+            case CollisionType::None:
                 return "none";
             default:
                 assert(false);

Modified: code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.h
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.h	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/WorldEntity.h	2015-12-30 21:07:09 UTC (rev 11004)
@@ -81,7 +81,7 @@
             @brief
                 Enumeration denoting the spaces which a transform can be relative to.
             */
-            enum TransformSpace
+            enum class TransformSpace
             {
                 //! Transform is relative to the local space
                 Local,
@@ -116,8 +116,8 @@
             const Vector3& getPosition() const;
             const Vector3& getWorldPosition() const;
 
-            void translate(const Vector3& distance, TransformSpace relativeTo = WorldEntity::Parent);
-            inline void translate(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Parent)
+            void translate(const Vector3& distance, TransformSpace relativeTo = TransformSpace::Parent);
+            inline void translate(float x, float y, float z, TransformSpace relativeTo = TransformSpace::Parent)
                 { this->translate(Vector3(x, y, z), relativeTo); }
 
             virtual inline const Vector3& getVelocity() const
@@ -133,20 +133,20 @@
             const Quaternion& getOrientation() const;
             const Quaternion& getWorldOrientation() const;
 
-            void rotate(const Quaternion& rotation, TransformSpace relativeTo = WorldEntity::Local);
-            inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
+            void rotate(const Quaternion& rotation, TransformSpace relativeTo = TransformSpace::Local);
+            inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace relativeTo = TransformSpace::Local)
                 { this->rotate(Quaternion(angle, axis), relativeTo); }
 
-            inline void yaw(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
+            inline void yaw(const Degree& angle, TransformSpace relativeTo = TransformSpace::Local)
                 { this->rotate(Quaternion(angle, Vector3::UNIT_Y), relativeTo); }
-            inline void pitch(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
+            inline void pitch(const Degree& angle, TransformSpace relativeTo = TransformSpace::Local)
                 { this->rotate(Quaternion(angle, Vector3::UNIT_X), relativeTo); }
-            inline void roll(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
+            inline void roll(const Degree& angle, TransformSpace relativeTo = TransformSpace::Local)
                 { this->rotate(Quaternion(angle, Vector3::UNIT_Z), relativeTo); }
 
-            void lookAt(const Vector3& target, TransformSpace relativeTo = WorldEntity::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
-            void setDirection(const Vector3& direction, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
-            inline void setDirection(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z)
+            void lookAt(const Vector3& target, TransformSpace relativeTo = TransformSpace::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
+            void setDirection(const Vector3& direction, TransformSpace relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
+            inline void setDirection(float x, float y, float z, TransformSpace relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z)
                 { this->setDirection(Vector3(x, y, z), relativeTo, localDirectionVector); }
 
             virtual void setScale3D(const Vector3& scale);
@@ -256,7 +256,7 @@
                 Static:    Like kinematic but the object is not allowed to move during the simulation.
                 None:      The object has no physics at all.
             */
-            enum CollisionType
+            enum class CollisionType
             {
                 Dynamic,
                 Kinematic,
@@ -265,13 +265,13 @@
             };
 
             //! Tells whether the object has any connection to the Bullet physics engine. If hasPhysics() is false, the object may still have a velocity.
-            bool hasPhysics()       const { return getCollisionType() != None     ; }
+            bool hasPhysics()       const { return getCollisionType() != CollisionType::None     ; }
             //! @see CollisionType
-            bool isStatic()         const { return getCollisionType() == Static   ; }
+            bool isStatic()         const { return getCollisionType() == CollisionType::Static   ; }
             //! @see CollisionType
-            bool isKinematic()      const { return getCollisionType() == Kinematic; }
+            bool isKinematic()      const { return getCollisionType() == CollisionType::Kinematic; }
             //! @see CollisionType
-            bool isDynamic()        const { return getCollisionType() == Dynamic  ; }
+            bool isDynamic()        const { return getCollisionType() == CollisionType::Dynamic  ; }
             //! Tells whether physics has been activated (you can temporarily deactivate it)
             bool isPhysicsActive()  const { return this->bPhysicsActive_; }
             bool addedToPhysicalWorld() const;

Modified: code/branches/cpp11_v2/src/orxonox/worldentities/pawns/FpsPlayer.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/pawns/FpsPlayer.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/pawns/FpsPlayer.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -78,7 +78,7 @@
 
         // FpsPlayer is always a physical object per default
         // Be aware of this call: The collision type legality check will not reach derived classes!
-        this->setCollisionType(WorldEntity::Dynamic);
+        this->setCollisionType(WorldEntity::CollisionType::Dynamic);
         // Get notification about collisions
         this->enableCollisionCallback();
 
@@ -129,7 +129,7 @@
 
     bool FpsPlayer::isCollisionTypeLegal(WorldEntity::CollisionType type) const
     {
-        if (type != WorldEntity::Dynamic)
+        if (type != WorldEntity::CollisionType::Dynamic)
         {
             orxout(internal_warning) << "Cannot tell a FpsPlayer not to be dynamic! Ignoring." << endl;
             assert(false); // Only in debug mode
@@ -167,7 +167,7 @@
 
             if (!this->isInMouseLook())
             {
-                this->yaw(Radian(this->yaw_ * this->getMouseLookSpeed()), WorldEntity::Parent);
+                this->yaw(Radian(this->yaw_ * this->getMouseLookSpeed()), WorldEntity::TransformSpace::Parent);
 
                 Radian pitch = this->cameraPositionRootNode_->getOrientation().getPitch();
                 if (pitch < Radian(math::pi_2) && pitch > Radian(-math::pi_2))

Modified: code/branches/cpp11_v2/src/orxonox/worldentities/pawns/SpaceShip.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/pawns/SpaceShip.cc	2015-12-30 20:24:39 UTC (rev 11003)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/pawns/SpaceShip.cc	2015-12-30 21:07:09 UTC (rev 11004)
@@ -79,7 +79,7 @@
 
         // SpaceShip is always a physical object per default
         // Be aware of this call: The collision type legality check will not reach derived classes!
-        this->setCollisionType(WorldEntity::Dynamic);
+        this->setCollisionType(WorldEntity::CollisionType::Dynamic);
         // Get notification about collisions
         this->enableCollisionCallback();
 
@@ -142,7 +142,7 @@
 
     bool SpaceShip::isCollisionTypeLegal(WorldEntity::CollisionType type) const
     {
-        if (type != WorldEntity::Dynamic)
+        if (type != WorldEntity::CollisionType::Dynamic)
         {
             orxout(internal_warning) << "Cannot tell a SpaceShip not to be dynamic! Ignoring." << endl;
             assert(false); // Only in debug mode




More information about the Orxonox-commit mailing list