Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/objecthierarchy/src/orxonox/objects/WorldEntity.h @ 460

Last change on this file since 460 was 460, checked in by landauf, 16 years ago

first try to add a WorldEntity. at the moment it's just a class with an Ogre::SceneNode

File size: 3.6 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 lookAt(const Vector3 &targetPoint, Ogre::Node::TransformSpace relativeTo, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
53                { this->node_->lookAt(targetPoint, relativeTo, localDirectionVector); }
54
55            inline void attachObject(Ogre::MovableObject *obj)
56                { this->node_->attachObject(obj); }
57            inline void detachObject(Ogre::MovableObject *obj)
58                { this->node_->detachObject(obj); }
59            inline void detachAllObjects()
60                { this->node_->detachAllObjects(); }
61
62            static Ogre::SceneManager* sceneManager_s;
63            static int num_s;
64
65        private:
66            Ogre::SceneNode* node_;
67            static unsigned int worldEntityCounter_s;
68
69            bool bStatic_;
70            Vector3 velocity_;
71    };
72}
73
74#endif
Note: See TracBrowser for help on using the repository browser.