Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 17, 2007, 10:39:12 AM (16 years ago)
Author:
scheusso
Message:

added class BaseEntity:

  • !!! please inherit from this class in future (instead of Entity/WorldEntity/BaseObject):
  • this class is able to be synchronised over the network (or at least created so far)
File:
1 edited

Legend:

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

    r554 r565  
    77#include "OgreSceneManager.h"
    88#include "OgreSceneNode.h"
     9#include "network/Synchronisable.h"
    910
    1011namespace orxonox
    1112{
    12     class WorldEntity : public BaseObject, public Tickable
    13     {
    14         public:
    15             WorldEntity();
    16             ~WorldEntity();
     13  class WorldEntity : public BaseObject, public Tickable, public network::Synchronisable
     14  {
     15    public:
     16      WorldEntity();
     17      ~WorldEntity();
    1718
    18             void tick(float dt);
     19      void tick(float dt);
    1920
    20             inline Ogre::SceneNode* getNode()
    21                 { return this->node_; }
     21      inline Ogre::SceneNode* getNode()
     22          { return this->node_; }
    2223
    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(); }
     24      inline void setPosition(const Vector3& pos)
     25          { this->node_->setPosition(pos); }
     26      inline void setPosition(Real x, Real y, Real z)
     27          { this->node_->setPosition(x, y, z); }
     28      inline const Vector3& getPosition() const
     29          { return this->node_->getPosition(); }
    2930
    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); }
     31      inline void translate(const Vector3 &d, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
     32          { this->node_->translate(d, relativeTo); }
     33      inline void translate(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
     34          { this->node_->translate(x, y, z, relativeTo); }
     35      inline void translate(const Matrix3 &axes, const Vector3 &move, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
     36          { this->node_->translate(axes, move, relativeTo); }
     37      inline void translate(const Matrix3 &axes, Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
     38          { this->node_->translate(axes, x, y, z, relativeTo); }
    3839
    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_; }
     40      inline void yaw(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
     41          { this->node_->yaw(angle, relativeTo); }
     42      inline void pitch(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
     43          { this->node_->pitch(angle, relativeTo); }
     44      inline void roll(const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
     45          { this->node_->roll(angle, relativeTo); }
    9846
    9947
    100             inline const Ogre::Quaternion& getOrientation()
    101                 { return this->node_->getOrientation(); }
     48      inline void rotate(const Vector3 &axis, const Radian &angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
     49          { this->node_->rotate(axis, angle, relativeTo); }
     50      inline void setDirection(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
     51          { this->node_->setDirection(x, y, z, relativeTo, localDirectionVector); }
     52      inline void setDirection(const Vector3 &vec, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
     53          { this->node_->setDirection(vec, relativeTo, localDirectionVector); }
     54      inline void setOrientation(const Ogre::Quaternion quat)
     55          { this->node_->setOrientation(quat); }
     56      inline void lookAt(const Vector3 &targetPoint, Ogre::Node::TransformSpace relativeTo, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
     57          { this->node_->lookAt(targetPoint, relativeTo, localDirectionVector); }
    10258
     59      inline void attachObject(Ogre::MovableObject *obj)
     60          { this->node_->attachObject(obj); }
     61      inline void detachObject(Ogre::MovableObject *obj)
     62          { this->node_->detachObject(obj); }
     63      inline void detachAllObjects()
     64          { this->node_->detachAllObjects(); }
    10365
    104         private:
    105             Ogre::SceneNode* node_;
    106             static unsigned int worldEntityCounter_s;
     66      inline void setVelocity(const Vector3& velocity)
     67          { this->velocity_ = velocity; }
     68      inline void setVelocity(Real x, Real y, Real z)
     69          { this->velocity_.x = x; this->velocity_.y = y; this->velocity_.z = z; }
     70      inline const Vector3& getVelocity() const
     71          { return this->velocity_; }
    10772
    108             bool bStatic_;
    109             Vector3 velocity_;
    110             Vector3 acceleration_;
    111             Vector3 rotationAxis_;
    112             Radian rotationRate_;
    113             Radian momentum_;
    114     };
     73      inline void setAcceleration(const Vector3& acceleration)
     74          { this->acceleration_ = acceleration; }
     75      inline void setAcceleration(Real x, Real y, Real z)
     76          { this->acceleration_.x = x; this->acceleration_.y = y; this->acceleration_.z = z; }
     77      inline const Vector3& getAcceleration() const
     78          { return this->acceleration_; }
     79
     80      inline void setRotationAxis(const Vector3& axis)
     81          { this->rotationAxis_ = axis; }
     82      inline void setRotationAxis(Real x, Real y, Real z)
     83          { this->rotationAxis_.x = x; this->rotationAxis_.y = y; this->rotationAxis_.z = z; }
     84      inline const Vector3& getRotationAxis() const
     85          { return this->rotationAxis_; }
     86
     87      inline void setRotationRate(const Radian& angle)
     88          { this->rotationRate_ = angle; }
     89      inline void setRotationRate(const Degree& angle)
     90          { this->rotationRate_ = angle; }
     91      inline const Radian& getRotationRate() const
     92          { return this->rotationRate_; }
     93
     94      inline void setMomentum(const Radian& angle)
     95          { this->momentum_ = angle; }
     96      inline void setMomentum(const Degree& angle)
     97          { this->momentum_ = angle; }
     98      inline const Radian& getMomentum() const
     99          { return this->momentum_; }
     100      inline const Ogre::Quaternion& getOrientation()
     101          { return this->node_->getOrientation(); }
     102     
     103    private:
     104      void registerAllVariables();
     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  };
    115115}
    116116
Note: See TracChangeset for help on using the changeset viewer.