Changeset 871 for code/trunk/src/orxonox/objects/WorldEntity.h
- Timestamp:
- Mar 9, 2008, 4:44:36 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/orxonox/objects/WorldEntity.h
r790 r871 8 8 9 9 #include "util/Math.h" 10 #include "util/XMLIncludes.h" 10 11 #include "network/Synchronisable.h" 11 #include "util/tinyxml/tinyxml.h" 12 #include "../core/CoreIncludes.h" 12 //#include "util/tinyxml/tinyxml.h" 13 13 #include "core/BaseObject.h" 14 14 #include "Tickable.h" … … 17 17 namespace orxonox 18 18 { 19 class _OrxonoxExport WorldEntity : public BaseObject, public Tickable, public network::Synchronisable20 {21 public:22 WorldEntity();23 virtual ~WorldEntity();19 class _OrxonoxExport WorldEntity : public BaseObject, public Tickable//, public network::Synchronisable 20 { 21 public: 22 WorldEntity(); 23 virtual ~WorldEntity(); 24 24 25 virtual void tick(float dt); 26 virtual void loadParams(TiXmlElement* xmlElem); 27 bool create(); 25 virtual void tick(float dt); 26 virtual void loadParams(TiXmlElement* xmlElem); 27 virtual void XMLPort(Element& xmlelement, bool loading); 28 bool create(); 28 29 29 inline Ogre::SceneNode* getNode()30 { return this->node_; }30 void attachWorldEntity(WorldEntity* entity); 31 const WorldEntity* getAttachedWorldEntity(unsigned int index); 31 32 32 inline void setNode(Ogre::SceneNode* node)33 { this->node_ = node; }33 inline Ogre::SceneNode* getNode() 34 { return this->node_; } 34 35 35 inline void setPosition(const Vector3& pos) 36 { this->node_->setPosition(pos); } 37 inline void setPosition(Real x, Real y, Real z) 38 { this->node_->setPosition(x, y, z); } 39 inline const Vector3& getPosition() const 40 { return this->node_->getPosition(); } 36 inline void setNode(Ogre::SceneNode* node) 37 { this->node_ = node; } 41 38 42 inline void translate(const Vector3 &d, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 43 { this->node_->translate(d, relativeTo); } 44 inline void translate(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 45 { this->node_->translate(x, y, z, relativeTo); } 46 inline void translate(const Matrix3 &axes, const Vector3 &move, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 47 { this->node_->translate(axes, move, relativeTo); } 48 inline void translate(const Matrix3 &axes, Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 49 { this->node_->translate(axes, x, y, z, relativeTo); } 39 inline void setPosition(const Vector3& pos) 40 { this->node_->setPosition(pos); } 41 inline void setPositionLoader1(const Vector3& pos) 42 { this->node_->setPosition(pos); } 43 inline void setPositionLoader2(Real x, Real y, Real z) 44 { this->node_->setPosition(x, y, z); } 45 inline void setPosition(Real x, Real y, Real z) 46 { this->node_->setPosition(x, y, z); } 47 inline const Vector3& getPosition() const 48 { return this->node_->getPosition(); } 50 49 51 inline void yaw(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 52 { this->node_->yaw(angle, relativeTo); } 53 inline void pitch(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 54 { this->node_->pitch(angle, relativeTo); } 55 inline void roll(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 56 { this->node_->roll(angle, relativeTo); } 50 inline void translate(const Vector3 &d, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 51 { this->node_->translate(d, relativeTo); } 52 inline void translate(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 53 { this->node_->translate(x, y, z, relativeTo); } 54 inline void translate(const Matrix3 &axes, const Vector3 &move, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 55 { this->node_->translate(axes, move, relativeTo); } 56 inline void translate(const Matrix3 &axes, Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT) 57 { this->node_->translate(axes, x, y, z, relativeTo); } 57 58 58 inline const Ogre::Quaternion& getOrientation() 59 { return this->node_->getOrientation(); } 60 inline void setOrientation(const Ogre::Quaternion& quat) 61 { this->node_->setOrientation(quat); } 62 inline void rotate(const Vector3 &axis, const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 63 { this->node_->rotate(axis, angle, relativeTo); } 64 inline void setDirection(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z) 65 { this->node_->setDirection(x, y, z, relativeTo, localDirectionVector); } 66 inline void setDirection(const Vector3 &vec, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z) 67 { this->node_->setDirection(vec, relativeTo, localDirectionVector); } 68 inline void lookAt(const Vector3 &targetPoint, Ogre::Node::TransformSpace relativeTo, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z) 69 { this->node_->lookAt(targetPoint, relativeTo, localDirectionVector); } 59 inline void yaw(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 60 { this->node_->yaw(angle, relativeTo); } 61 inline void pitch(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 62 { this->node_->pitch(angle, relativeTo); } 63 inline void roll(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 64 { this->node_->roll(angle, relativeTo); } 65 void setYawPitchRoll(const Degree& yaw, const Degree& pitch, const Degree& roll); 70 66 71 inline void setScale(const Vector3 &scale) 72 { this->node_->setScale(scale); } 73 inline void setScale(Real x, Real y, Real z) 74 { this->node_->setScale(x, y, z); } 75 inline void setScale(Real scale) 76 { this->node_->setScale(scale, scale, scale); } 77 inline const Vector3& getScale(void) const 78 { return this->node_->getScale(); } 79 inline void scale(const Vector3 &scale) 80 { this->node_->scale(scale); } 81 inline void scale(Real x, Real y, Real z) 82 { this->node_->scale(x, y, z); } 83 inline void scale(Real scale) 84 { this->node_->scale(scale, scale, scale); } 67 inline void setYaw(const Degree &angle) 68 { this->node_->yaw(angle, Ogre::Node::TS_LOCAL); } 69 inline void setPitch(const Degree &angle) 70 { this->node_->pitch(angle, Ogre::Node::TS_LOCAL); } 71 inline void setRoll(const Degree &angle) 72 { this->node_->roll(angle, Ogre::Node::TS_LOCAL); } 85 73 86 inline void attachObject(Ogre::MovableObject *obj) 87 { this->node_->attachObject(obj); } 88 inline void attachObject(Mesh &mesh) 89 { this->node_->attachObject(mesh.getEntity()); } 90 inline void detachObject(Ogre::MovableObject *obj) 91 { this->node_->detachObject(obj); } 92 inline void detachAllObjects() 93 { this->node_->detachAllObjects(); } 74 inline const Ogre::Quaternion& getOrientation() 75 { return this->node_->getOrientation(); } 76 inline void setOrientation(const Ogre::Quaternion& quat) 77 { this->node_->setOrientation(quat); } 78 inline void rotate(const Vector3 &axis, const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL) 79 { this->node_->rotate(axis, angle, relativeTo); } 80 inline void setDirectionLoader(Real x, Real y, Real z) 81 { this->setDirection(x, y, z); } 82 inline void setDirection(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z) 83 { this->node_->setDirection(x, y, z, relativeTo, localDirectionVector); } 84 inline void setDirection(const Vector3 &vec, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z) 85 { this->node_->setDirection(vec, relativeTo, localDirectionVector); } 86 inline void lookAt(const Vector3 &targetPoint, Ogre::Node::TransformSpace relativeTo, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z) 87 { this->node_->lookAt(targetPoint, relativeTo, localDirectionVector); } 94 88 95 inline void setVelocity(const Vector3& velocity) 96 { this->velocity_ = velocity; } 97 inline void setVelocity(Real x, Real y, Real z) 98 { this->velocity_.x = x; this->velocity_.y = y; this->velocity_.z = z; } 99 inline const Vector3& getVelocity() const 100 { return this->velocity_; } 89 inline void setScale(const Vector3 &scale) 90 { this->node_->setScale(scale); } 91 inline void setScale(Real x, Real y, Real z) 92 { this->node_->setScale(x, y, z); } 93 inline void setScale(Real scale) 94 { this->node_->setScale(scale, scale, scale); } 95 inline void setTotalScale(Real scale) 96 { this->node_->setScale(scale, scale, scale); } 97 inline const Vector3& getScale(void) const 98 { return this->node_->getScale(); } 99 inline void scale(const Vector3 &scale) 100 { this->node_->scale(scale); } 101 inline void scale(Real x, Real y, Real z) 102 { this->node_->scale(x, y, z); } 103 inline void scale(Real scale) 104 { this->node_->scale(scale, scale, scale); } 101 105 102 inline void setAcceleration(const Vector3& acceleration) 103 { this->acceleration_ = acceleration; } 104 inline void setAcceleration(Real x, Real y, Real z) 105 { this->acceleration_.x = x; this->acceleration_.y = y; this->acceleration_.z = z; } 106 inline const Vector3& getAcceleration() const 107 { return this->acceleration_; } 106 inline void attachObject(Ogre::MovableObject *obj) 107 { this->node_->attachObject(obj); } 108 inline void attachObject(Mesh &mesh) 109 { this->node_->attachObject(mesh.getEntity()); } 110 inline void detachObject(Ogre::MovableObject *obj) 111 { this->node_->detachObject(obj); } 112 inline void detachAllObjects() 113 { this->node_->detachAllObjects(); } 108 114 109 inline void setRotationAxis(const Vector3& axis)110 { this->rotationAxis_ = axis; }111 inline void setRotationAxis(Real x, Real y, Real z)112 { this->rotationAxis_.x = x; this->rotationAxis_.y = y; this->rotationAxis_.z = z; }113 inline const Vector3& getRotationAxis() const114 { return this->rotationAxis_; }115 inline void setVelocity(const Vector3& velocity) 116 { this->velocity_ = velocity; } 117 inline void setVelocity(Real x, Real y, Real z) 118 { this->velocity_.x = x; this->velocity_.y = y; this->velocity_.z = z; } 119 inline const Vector3& getVelocity() const 120 { return this->velocity_; } 115 121 116 inline void setRotationRate(const Radian& angle)117 { this->rotationRate_ = angle; }118 inline void setRotationRate(const Degree& angle)119 { this->rotationRate_ = angle; }120 inline const Radian& getRotationRate() const121 { return this->rotationRate_; }122 inline void setAcceleration(const Vector3& acceleration) 123 { this->acceleration_ = acceleration; } 124 inline void setAcceleration(Real x, Real y, Real z) 125 { this->acceleration_.x = x; this->acceleration_.y = y; this->acceleration_.z = z; } 126 inline const Vector3& getAcceleration() const 127 { return this->acceleration_; } 122 128 123 inline void setMomentum(const Radian& angle) 124 { this->momentum_ = angle; } 125 inline void setMomentum(const Degree& angle) 126 { this->momentum_ = angle; } 127 inline const Radian& getMomentum() const 128 { return this->momentum_; } 129 inline void setRotationAxisLoader(const Vector3& axis) 130 { this->rotationAxis_ = axis; } 131 inline void setRotationAxis(const Vector3& axis) 132 { this->rotationAxis_ = axis; } 133 inline void setRotationAxis(Real x, Real y, Real z) 134 { this->rotationAxis_.x = x; this->rotationAxis_.y = y; this->rotationAxis_.z = z; } 135 inline const Vector3& getRotationAxis() const 136 { return this->rotationAxis_; } 129 137 130 inline void setStatic(bool bStatic) 131 { this->bStatic_ = bStatic; } 132 inline bool isStatic() 133 { return this->bStatic_; } 138 // inline void setRotationRate(const Radian& angle) 139 // { this->rotationRate_ = angle; } 140 inline void setRotationRate(const Degree& angle) 141 { this->rotationRate_ = angle; this->setStatic(angle == Degree(0)); } 142 inline const Radian& getRotationRate() const 143 { return this->rotationRate_; } 134 144 135 protected: 136 void registerAllVariables(); 145 inline void setMomentum(const Radian& angle) 146 { this->momentum_ = angle; } 147 inline void setMomentum(const Degree& angle) 148 { this->momentum_ = angle; } 149 inline const Radian& getMomentum() const 150 { return this->momentum_; } 137 151 138 Vector3 velocity_; 139 Vector3 acceleration_; 140 Vector3 rotationAxis_; 141 Radian rotationRate_; 142 Radian momentum_; 152 inline void setStatic(bool bStatic) 153 { this->bStatic_ = bStatic; } 154 inline bool isStatic() 155 { return this->bStatic_; } 143 156 144 private: 145 static unsigned int worldEntityCounter_s; 146 Ogre::SceneNode* node_; 147 bool bStatic_; 148 }; 149 ExportClass(WorldEntity, Orxonox); 157 protected: 158 void registerAllVariables(); 159 160 Vector3 velocity_; 161 Vector3 acceleration_; 162 Vector3 rotationAxis_; 163 Radian rotationRate_; 164 Radian momentum_; 165 166 private: 167 static unsigned int worldEntityCounter_s; 168 Ogre::SceneNode* node_; 169 bool bStatic_; 170 std::vector<WorldEntity*> attachedWorldEntities_; 171 }; 150 172 } 151 173
Note: See TracChangeset
for help on using the changeset viewer.