Changeset 11068 for code/branches/cpp11_v3/src/orxonox/worldentities
- Timestamp:
- Jan 17, 2016, 6:41:22 PM (9 years ago)
- Location:
- code/branches/cpp11_v3
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/cpp11_v3
- Property svn:mergeinfo changed
/code/branches/cpp11_v2 merged: 10996-11008,11010
- Property svn:mergeinfo changed
-
code/branches/cpp11_v3/src/orxonox/worldentities/Drone.cc
r11054 r11068 49 49 this->localAngularAcceleration_.setValue(0, 0, 0); 50 50 this->setRadarVisibility(false); 51 this->setCollisionType(WorldEntity:: Dynamic);51 this->setCollisionType(WorldEntity::CollisionType::Dynamic); 52 52 53 53 myController_ = new DroneController(this->getContext()); //!< Creates a new controller and passes our this pointer to it as creator. -
code/branches/cpp11_v3/src/orxonox/worldentities/MobileEntity.cc
r9667 r11068 189 189 bool MobileEntity::isCollisionTypeLegal(WorldEntity::CollisionType type) const 190 190 { 191 if (type == WorldEntity:: Static)191 if (type == WorldEntity::CollisionType::Static) 192 192 { 193 193 orxout(internal_warning) << "Cannot tell a MobileEntity to have static collision type! Ignoring." << endl; -
code/branches/cpp11_v3/src/orxonox/worldentities/StaticEntity.cc
r9667 r11068 95 95 bool StaticEntity::isCollisionTypeLegal(WorldEntity::CollisionType type) const 96 96 { 97 if (type == WorldEntity:: Kinematic || type == WorldEntity::Dynamic)97 if (type == WorldEntity::CollisionType::Kinematic || type == WorldEntity::CollisionType::Dynamic) 98 98 { 99 99 orxout(internal_warning) << "Cannot tell a StaticEntity to have kinematic or dynamic collision type! Ignoring." << endl; -
code/branches/cpp11_v3/src/orxonox/worldentities/WorldEntity.cc
r11054 r11068 56 56 57 57 // Be sure we don't do bad conversions 58 static_assert((int)Ogre::Node::TS_LOCAL == (int)WorldEntity:: Local, "check enum");59 static_assert((int)Ogre::Node::TS_PARENT == (int)WorldEntity:: Parent, "check enum");60 static_assert((int)Ogre::Node::TS_WORLD == (int)WorldEntity:: World, "check enum");58 static_assert((int)Ogre::Node::TS_LOCAL == (int)WorldEntity::TransformSpace::Local, "check enum"); 59 static_assert((int)Ogre::Node::TS_PARENT == (int)WorldEntity::TransformSpace::Parent, "check enum"); 60 static_assert((int)Ogre::Node::TS_WORLD == (int)WorldEntity::TransformSpace::World, "check enum"); 61 61 62 62 RegisterAbstractClass(WorldEntity).inheritsFrom<BaseObject>().inheritsFrom<Synchronisable>(); … … 95 95 this->collisionShape_ = new WorldEntityCollisionShape(this->getContext()); 96 96 this->collisionShape_->setWorldEntityOwner(this); 97 this->collisionType_ = None;98 this->collisionTypeSynchronised_ = None;97 this->collisionType_ = CollisionType::None; 98 this->collisionTypeSynchronised_ = CollisionType::None; 99 99 this->mass_ = 1.0f; 100 100 this->childrenMass_ = 0; … … 207 207 registerVariable(this->bCollisionResponseActive_, 208 208 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionResponseActivityChanged)); 209 registerVariable( (int&)this->collisionTypeSynchronised_,209 registerVariable(this->collisionTypeSynchronised_, 210 210 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionTypeChanged)); 211 211 registerVariable(this->bPhysicsActiveSynchronised_, … … 322 322 void WorldEntity::collisionTypeChanged() 323 323 { 324 if (this->collisionTypeSynchronised_ != Dynamic &&325 this->collisionTypeSynchronised_ != Kinematic &&326 this->collisionTypeSynchronised_ != Static &&327 this->collisionTypeSynchronised_ != None)324 if (this->collisionTypeSynchronised_ != CollisionType::Dynamic && 325 this->collisionTypeSynchronised_ != CollisionType::Kinematic && 326 this->collisionTypeSynchronised_ != CollisionType::Static && 327 this->collisionTypeSynchronised_ != CollisionType::None) 328 328 { 329 329 orxout(internal_error) << "Error when collsion Type was received over network. Unknown enum value:" << this->collisionTypeSynchronised_ << endl; … … 681 681 switch (relativeTo) 682 682 { 683 case WorldEntity::Local:683 case TransformSpace::Local: 684 684 // position is relative to parent so transform downwards 685 685 this->setPosition(this->getPosition() + this->getOrientation() * distance); 686 686 break; 687 case WorldEntity::Parent:687 case TransformSpace::Parent: 688 688 this->setPosition(this->getPosition() + distance); 689 689 break; 690 case WorldEntity::World:690 case TransformSpace::World: 691 691 // position is relative to parent so transform upwards 692 692 if (this->node_->getParent()) … … 711 711 switch(relativeTo) 712 712 { 713 case WorldEntity::Local:713 case TransformSpace::Local: 714 714 this->setOrientation(this->getOrientation() * rotation); 715 715 break; 716 case WorldEntity::Parent:716 case TransformSpace::Parent: 717 717 // Rotations are normally relative to local axes, transform up 718 718 this->setOrientation(rotation * this->getOrientation()); 719 719 break; 720 case WorldEntity::World:720 case TransformSpace::World: 721 721 // Rotations are normally relative to local axes, transform up 722 722 this->setOrientation(this->getOrientation() * this->getWorldOrientation().Inverse() … … 741 741 switch (relativeTo) 742 742 { 743 case WorldEntity::Local:743 case TransformSpace::Local: 744 744 origin = Vector3::ZERO; 745 745 break; 746 case WorldEntity::Parent:746 case TransformSpace::Parent: 747 747 origin = this->getPosition(); 748 748 break; 749 case WorldEntity::World:749 case TransformSpace::World: 750 750 origin = this->getWorldPosition(); 751 751 break; … … 831 831 832 832 // Check whether we have to create or destroy. 833 if (type != None && this->collisionType_ ==None)833 if (type != CollisionType::None && this->collisionType_ == CollisionType::None) 834 834 { 835 835 /* … … 849 849 this->physicalBody_->setActivationState(DISABLE_DEACTIVATION); 850 850 } 851 else if (type == None && this->collisionType_ !=None)851 else if (type == CollisionType::None && this->collisionType_ != CollisionType::None) 852 852 { 853 853 // Destroy rigid body … … 856 856 delete this->physicalBody_; 857 857 this->physicalBody_ = nullptr; 858 this->collisionType_ = None;859 this->collisionTypeSynchronised_ = None;858 this->collisionType_ = CollisionType::None; 859 this->collisionTypeSynchronised_ = CollisionType::None; 860 860 return; 861 861 } … … 864 864 switch (type) 865 865 { 866 case Dynamic:866 case CollisionType::Dynamic: 867 867 this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT & !btCollisionObject::CF_KINEMATIC_OBJECT); 868 868 break; 869 case Kinematic:869 case CollisionType::Kinematic: 870 870 this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT) | btCollisionObject::CF_KINEMATIC_OBJECT); 871 871 break; 872 case Static:872 case CollisionType::Static: 873 873 this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_KINEMATIC_OBJECT) | btCollisionObject::CF_STATIC_OBJECT); 874 874 break; 875 case None:875 case CollisionType::None: 876 876 assert(false); // Doesn't happen 877 877 return; … … 895 895 CollisionType type; 896 896 if (typeStrLower == "dynamic") 897 type = Dynamic;897 type = CollisionType::Dynamic; 898 898 else if (typeStrLower == "static") 899 type = Static;899 type = CollisionType::Static; 900 900 else if (typeStrLower == "kinematic") 901 type = Kinematic;901 type = CollisionType::Kinematic; 902 902 else if (typeStrLower == "none") 903 type = None;903 type = CollisionType::None; 904 904 else 905 905 ThrowException(ParseError, std::string("Attempting to set an unknown collision type: '") + typeStr + "'."); … … 912 912 switch (this->getCollisionType()) 913 913 { 914 case Dynamic:914 case CollisionType::Dynamic: 915 915 return "dynamic"; 916 case Kinematic:916 case CollisionType::Kinematic: 917 917 return "kinematic"; 918 case Static:918 case CollisionType::Static: 919 919 return "static"; 920 case None:920 case CollisionType::None: 921 921 return "none"; 922 922 default: -
code/branches/cpp11_v3/src/orxonox/worldentities/WorldEntity.h
r11054 r11068 82 82 Enumeration denoting the spaces which a transform can be relative to. 83 83 */ 84 enum TransformSpace84 enum class TransformSpace 85 85 { 86 86 //! Transform is relative to the local space … … 117 117 const Vector3& getWorldPosition() const; 118 118 119 void translate(const Vector3& distance, TransformSpace relativeTo = WorldEntity::Parent);120 inline void translate(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Parent)119 void translate(const Vector3& distance, TransformSpace relativeTo = TransformSpace::Parent); 120 inline void translate(float x, float y, float z, TransformSpace relativeTo = TransformSpace::Parent) 121 121 { this->translate(Vector3(x, y, z), relativeTo); } 122 122 … … 134 134 const Quaternion& getWorldOrientation() const; 135 135 136 void rotate(const Quaternion& rotation, TransformSpace relativeTo = WorldEntity::Local);137 inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)136 void rotate(const Quaternion& rotation, TransformSpace relativeTo = TransformSpace::Local); 137 inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace relativeTo = TransformSpace::Local) 138 138 { this->rotate(Quaternion(angle, axis), relativeTo); } 139 139 140 inline void yaw(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)140 inline void yaw(const Degree& angle, TransformSpace relativeTo = TransformSpace::Local) 141 141 { this->rotate(Quaternion(angle, Vector3::UNIT_Y), relativeTo); } 142 inline void pitch(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)142 inline void pitch(const Degree& angle, TransformSpace relativeTo = TransformSpace::Local) 143 143 { this->rotate(Quaternion(angle, Vector3::UNIT_X), relativeTo); } 144 inline void roll(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)144 inline void roll(const Degree& angle, TransformSpace relativeTo = TransformSpace::Local) 145 145 { this->rotate(Quaternion(angle, Vector3::UNIT_Z), relativeTo); } 146 146 147 void lookAt(const Vector3& target, TransformSpace relativeTo = WorldEntity::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);148 void setDirection(const Vector3& direction, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);149 inline void setDirection(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z)147 void lookAt(const Vector3& target, TransformSpace relativeTo = TransformSpace::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z); 148 void setDirection(const Vector3& direction, TransformSpace relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z); 149 inline void setDirection(float x, float y, float z, TransformSpace relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z) 150 150 { this->setDirection(Vector3(x, y, z), relativeTo, localDirectionVector); } 151 151 … … 257 257 None: The object has no physics at all. 258 258 */ 259 enum CollisionType259 enum class CollisionType 260 260 { 261 261 Dynamic, … … 266 266 267 267 //! Tells whether the object has any connection to the Bullet physics engine. If hasPhysics() is false, the object may still have a velocity. 268 bool hasPhysics() const { return getCollisionType() != None ; }268 bool hasPhysics() const { return getCollisionType() != CollisionType::None ; } 269 269 //! @see CollisionType 270 bool isStatic() const { return getCollisionType() == Static ; }270 bool isStatic() const { return getCollisionType() == CollisionType::Static ; } 271 271 //! @see CollisionType 272 bool isKinematic() const { return getCollisionType() == Kinematic; }272 bool isKinematic() const { return getCollisionType() == CollisionType::Kinematic; } 273 273 //! @see CollisionType 274 bool isDynamic() const { return getCollisionType() == Dynamic ; }274 bool isDynamic() const { return getCollisionType() == CollisionType::Dynamic ; } 275 275 //! Tells whether physics has been activated (you can temporarily deactivate it) 276 276 bool isPhysicsActive() const { return this->bPhysicsActive_; } -
code/branches/cpp11_v3/src/orxonox/worldentities/pawns/FpsPlayer.cc
r11054 r11068 79 79 // FpsPlayer is always a physical object per default 80 80 // Be aware of this call: The collision type legality check will not reach derived classes! 81 this->setCollisionType(WorldEntity:: Dynamic);81 this->setCollisionType(WorldEntity::CollisionType::Dynamic); 82 82 // Get notification about collisions 83 83 this->enableCollisionCallback(); … … 130 130 bool FpsPlayer::isCollisionTypeLegal(WorldEntity::CollisionType type) const 131 131 { 132 if (type != WorldEntity:: Dynamic)132 if (type != WorldEntity::CollisionType::Dynamic) 133 133 { 134 134 orxout(internal_warning) << "Cannot tell a FpsPlayer not to be dynamic! Ignoring." << endl; … … 168 168 if (!this->isInMouseLook()) 169 169 { 170 this->yaw(Radian(this->yaw_ * this->getMouseLookSpeed()), WorldEntity:: Parent);170 this->yaw(Radian(this->yaw_ * this->getMouseLookSpeed()), WorldEntity::TransformSpace::Parent); 171 171 172 172 Radian pitch = this->cameraPositionRootNode_->getOrientation().getPitch(); -
code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.cc
r11062 r11068 97 97 98 98 this->setRadarObjectColour(ColourValue::Red); 99 this->setRadarObjectShape(RadarViewable:: Dot);99 this->setRadarObjectShape(RadarViewable::Shape::Dot); 100 100 101 101 this->registerVariables(); -
code/branches/cpp11_v3/src/orxonox/worldentities/pawns/SpaceShip.cc
r11054 r11068 80 80 // SpaceShip is always a physical object per default 81 81 // Be aware of this call: The collision type legality check will not reach derived classes! 82 this->setCollisionType(WorldEntity:: Dynamic);82 this->setCollisionType(WorldEntity::CollisionType::Dynamic); 83 83 // Get notification about collisions 84 84 this->enableCollisionCallback(); … … 145 145 bool SpaceShip::isCollisionTypeLegal(WorldEntity::CollisionType type) const 146 146 { 147 if (type != WorldEntity:: Dynamic)147 if (type != WorldEntity::CollisionType::Dynamic) 148 148 { 149 149 orxout(internal_warning) << "Cannot tell a SpaceShip not to be dynamic! Ignoring." << endl; -
code/branches/cpp11_v3/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc
r11054 r11068 51 51 } 52 52 53 this->setRadarObjectShape(RadarViewable:: Triangle);53 this->setRadarObjectShape(RadarViewable::Shape::Triangle); 54 54 } 55 55 -
code/branches/cpp11_v3/src/orxonox/worldentities/pawns/TeamBaseMatchBase.h
r9667 r11068 36 36 namespace orxonox 37 37 { 38 namespaceBaseState38 enum class BaseState 39 39 { 40 enum Value 41 { 42 Uncontrolled, 43 ControlTeam1, 44 ControlTeam2, 45 }; 46 } 40 Uncontrolled, 41 ControlTeam1, 42 ControlTeam2, 43 }; 47 44 48 45 … … 58 55 59 56 // Set the state of a base to whatever the argument of the function is 60 void setState(BaseState ::Valuestate)57 void setState(BaseState state) 61 58 { 62 59 this->state_ = state; … … 66 63 67 64 // Get the state of a base as a return value 68 BaseState ::ValuegetState() const65 BaseState getState() const 69 66 { 70 67 return this->state_; … … 75 72 void changeTeamColour(); 76 73 77 BaseState ::Valuestate_;74 BaseState state_; 78 75 }; 79 76 }
Note: See TracChangeset
for help on using the changeset viewer.