Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/FICN/src/orxonox/objects/WorldEntity.h @ 563

Last change on this file since 563 was 554, checked in by landauf, 17 years ago

removed scenemanager hack and used orxonox.h

File size: 5.7 KB
Line 
1#ifndef _WorldEntity_H__
2#define _WorldEntity_H__
3
4#include "BaseObject.h"
5#include "Tickable.h"
6#include "../core/CoreIncludes.h"
7#include "OgreSceneManager.h"
8#include "OgreSceneNode.h"
9
10namespace orxonox
11{
12    class WorldEntity : public BaseObject, public Tickable
13    {
14        public:
15            WorldEntity();
16            ~WorldEntity();
17
18            void tick(float dt);
19
20            inline Ogre::SceneNode* getNode()
21                { return this->node_; }
22
23            inline void setPosition(const Vector3& pos)
24                { this->node_->setPosition(pos); }
25            inline void setPosition(Real x, Real y, Real z)
26                { this->node_->setPosition(x, y, z); }
27            inline const Vector3& getPosition() const
28                { return this->node_->getPosition(); }
29
30            inline void translate(const Vector3 &d, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
31                { this->node_->translate(d, relativeTo); }
32            inline void translate(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
33                { this->node_->translate(x, y, z, relativeTo); }
34            inline void translate(const Matrix3 &axes, const Vector3 &move, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
35                { this->node_->translate(axes, move, relativeTo); }
36            inline void translate(const Matrix3 &axes, Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
37                { this->node_->translate(axes, x, y, z, relativeTo); }
38
39            inline void yaw(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
40                { this->node_->yaw(angle, relativeTo); }
41            inline void pitch(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
42                { this->node_->pitch(angle, relativeTo); }
43            inline void roll(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
44                { this->node_->roll(angle, relativeTo); }
45
46            inline void rotate(const Vector3 &axis, const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
47                { this->node_->rotate(axis, angle, relativeTo); }
48            inline void setDirection(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
49                { this->node_->setDirection(x, y, z, relativeTo, localDirectionVector); }
50            inline void setDirection(const Vector3 &vec, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
51                { this->node_->setDirection(vec, relativeTo, localDirectionVector); }
52            inline void setOrientation(const Ogre::Quaternion quat)
53                { this->node_->setOrientation(quat); }
54            inline void lookAt(const Vector3 &targetPoint, Ogre::Node::TransformSpace relativeTo, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
55                { this->node_->lookAt(targetPoint, relativeTo, localDirectionVector); }
56
57            inline void attachObject(Ogre::MovableObject *obj)
58                { this->node_->attachObject(obj); }
59            inline void detachObject(Ogre::MovableObject *obj)
60                { this->node_->detachObject(obj); }
61            inline void detachAllObjects()
62                { this->node_->detachAllObjects(); }
63
64            inline void setVelocity(const Vector3& velocity)
65                { this->velocity_ = velocity; }
66            inline void setVelocity(Real x, Real y, Real z)
67                { this->velocity_.x = x; this->velocity_.y = y; this->velocity_.z = z; }
68            inline const Vector3& getVelocity() const
69                { return this->velocity_; }
70
71            inline void setAcceleration(const Vector3& acceleration)
72                { this->acceleration_ = acceleration; }
73            inline void setAcceleration(Real x, Real y, Real z)
74                { this->acceleration_.x = x; this->acceleration_.y = y; this->acceleration_.z = z; }
75            inline const Vector3& getAcceleration() const
76                { return this->acceleration_; }
77
78            inline void setRotationAxis(const Vector3& axis)
79                { this->rotationAxis_ = axis; }
80            inline void setRotationAxis(Real x, Real y, Real z)
81                { this->rotationAxis_.x = x; this->rotationAxis_.y = y; this->rotationAxis_.z = z; }
82            inline const Vector3& getRotationAxis() const
83                { return this->rotationAxis_; }
84
85            inline void setRotationRate(const Radian& angle)
86                { this->rotationRate_ = angle; }
87            inline void setRotationRate(const Degree& angle)
88                { this->rotationRate_ = angle; }
89            inline const Radian& getRotationRate() const
90                { return this->rotationRate_; }
91
92            inline void setMomentum(const Radian& angle)
93                { this->momentum_ = angle; }
94            inline void setMomentum(const Degree& angle)
95                { this->momentum_ = angle; }
96            inline const Radian& getMomentum() const
97                { return this->momentum_; }
98
99
100            inline const Ogre::Quaternion& getOrientation()
101                { return this->node_->getOrientation(); }
102
103
104        private:
105            Ogre::SceneNode* node_;
106            static unsigned int worldEntityCounter_s;
107
108            bool bStatic_;
109            Vector3 velocity_;
110            Vector3 acceleration_;
111            Vector3 rotationAxis_;
112            Radian rotationRate_;
113            Radian momentum_;
114    };
115}
116
117#endif
Note: See TracBrowser for help on using the repository browser.