- Timestamp:
- Dec 10, 2008, 1:38:17 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/physics/src/orxonox/objects/worldentities/MovableEntity.h
r2304 r2374 34 34 #include "WorldEntity.h" 35 35 #include "objects/Tickable.h" 36 #include "network/ClientConnectionListener.h"37 36 38 37 namespace orxonox 39 38 { 40 class _OrxonoxExport MovableEntity : public WorldEntity 39 class _OrxonoxExport MovableEntity : public WorldEntity, public Tickable 41 40 { 42 41 public: … … 45 44 46 45 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 46 virtual void tick(float dt); 47 47 void registerVariables(); 48 48 … … 69 69 void setVelocity(const Vector3& velocity); 70 70 inline void setVelocity(float x, float y, float z) 71 { this-> velocity_.x = x; this->velocity_.y = y; this->velocity_.z = z; }71 { this->setVelocity(Vector3(x, y, z)); } 72 72 inline const Vector3& getVelocity() const 73 { return this->velocity_; } 73 { return this->linearVelocity_; } 74 75 void setAngularVelocity(const Vector3& velocity); 76 inline void setAngularVelocity(float x, float y, float z) 77 { this->setAngularVelocity(Vector3(x, y, z)); } 78 inline const Vector3& getAngularVelocity() const 79 { return this->linearAcceleration_; } 80 81 void setAcceleration(const Vector3& acceleration); 82 inline void setAcceleration(float x, float y, float z) 83 { this->setAcceleration(Vector3(x, y, z)); } 84 inline const Vector3& getAcceleration() const 85 { return this->linearAcceleration_; } 86 87 void setAngularAcceleration(const Vector3& acceleration); 88 inline void setAngularAcceleration(float x, float y, float z) 89 { this->setAngularAcceleration(Vector3(x, y, z)); } 90 inline const Vector3& getAngularAcceleration() const 91 { return this->angularAcceleration_; } 92 93 inline void setRotationRate(Degree rate) 94 { this->setAngularVelocity(this->getAngularVelocity().normalisedCopy() * rate.valueRadians()); } 95 inline Degree getRotationRate() const 96 { return Degree(this->getAngularVelocity().length()); } 97 98 inline void setRotationAxis(const Vector3& axis) 99 { this->setAngularVelocity(axis * this->getAngularVelocity().length()); } 100 inline Vector3 getRotationAxis() const 101 { return this->getAngularVelocity().normalisedCopy(); } 74 102 75 103 protected: 76 Vector3 velocity_; 104 Vector3 linearAcceleration_; 105 Vector3 linearVelocity_; 106 Vector3 angularAcceleration_; 107 Vector3 angularVelocity_; 77 108 78 109 private: 79 //void attachPhysicalObject(WorldEntity* object); 80 81 virtual void positionChanged() { } 82 virtual void orientationChanged() { } 83 virtual void velocityChanged() { } 110 virtual void positionChanged (bool bContinuous) { } 111 virtual void orientationChanged (bool bContinuous) { } 112 virtual void linearVelocityChanged (bool bContinuous) { } 113 virtual void angularVelocityChanged(bool bContinuous) { } 84 114 85 115 virtual bool isCollisionTypeLegal(WorldEntity::CollisionType type) const;
Note: See TracChangeset
for help on using the changeset viewer.