Entity.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ENTITY_HH
00029 #define ENTITY_HH
00030
00031 #include <vector>
00032 #include <string>
00033 #include <ode/ode.h>
00034
00035 namespace Ogre
00036 {
00037 class SceneNode;
00038 }
00039
00040 namespace gazebo
00041 {
00042
00045
00046
00048
00049
00050
00051 class Entity
00052 {
00055 public: Entity(Entity *parent = NULL);
00056
00058 public: virtual ~Entity();
00059
00062 public: int GetId() const;
00063
00066 public: int GetParentId() const;
00067
00070 public: void SetParent(Entity *parent);
00071
00074 public: Entity *GetParent() const;
00075
00078 public: void AddChild(Entity *child);
00079
00082 public: std::vector< Entity* > &GetChildren();
00083
00086 public: Ogre::SceneNode *GetSceneNode() const;
00087
00090 public: void SetSceneNode(Ogre::SceneNode *sceneNode);
00091
00094 public: void SetName(const std::string &name);
00095
00098 public: std::string GetName() const;
00099
00102 public: void SetStatic(bool s);
00103
00106 public: bool IsStatic() const;
00107
00109 public: bool operator==(const Entity &ent);
00110
00112 protected: Entity *parent;
00113
00115 public: std::vector< Entity* > children;
00116
00118 private: unsigned int id;
00119
00121 private: static unsigned int idCounter;
00122
00124 protected: Ogre::SceneNode *sceneNode;
00125
00127 public: dSpaceID spaceId;
00128
00130 private: std::string name;
00131
00132 private: bool isStatic;
00133 };
00134
00136 }
00137
00138 #endif