Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 9, 2008, 4:44:36 PM (16 years ago)
Author:
landauf
Message:

merged core branch to trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/orxonox/objects/WorldEntity.h

    r790 r871  
    88
    99#include "util/Math.h"
     10#include "util/XMLIncludes.h"
    1011#include "network/Synchronisable.h"
    11 #include "util/tinyxml/tinyxml.h"
    12 #include "../core/CoreIncludes.h"
     12//#include "util/tinyxml/tinyxml.h"
    1313#include "core/BaseObject.h"
    1414#include "Tickable.h"
     
    1717namespace orxonox
    1818{
    19   class _OrxonoxExport WorldEntity : public BaseObject, public Tickable, public network::Synchronisable
    20   {
    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();
    2424
    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();
    2829
    29       inline Ogre::SceneNode* getNode()
    30           { return this->node_; }
     30            void attachWorldEntity(WorldEntity* entity);
     31            const WorldEntity* getAttachedWorldEntity(unsigned int index);
    3132
    32       inline void setNode(Ogre::SceneNode* node)
    33           { this->node_ = node; }
     33            inline Ogre::SceneNode* getNode()
     34                { return this->node_; }
    3435
    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; }
    4138
    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(); }
    5049
    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); }
    5758
    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);
    7066
    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); }
    8573
    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); }
    9488
    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); }
    101105
    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(); }
    108114
    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() const
    114           { 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_; }
    115121
    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() const
    121           { 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_; }
    122128
    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_; }
    129137
    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_; }
    134144
    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_; }
    137151
    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_; }
    143156
    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    };
    150172}
    151173
Note: See TracChangeset for help on using the changeset viewer.