00001 #ifndef _MAPOBJECT_H 00002 #define _MAPOBJECT_H 00003 00004 #include <vector> 00005 #include "robotworld.h" 00006 class Map; 00007 00008 00009 class MapObject 00010 { 00011 public: 00012 MapObject(Map&); 00013 virtual ~MapObject(); 00014 00015 void SetPos(double,double); 00016 double GetX() { return m_x; } 00017 double GetY() { return m_y; } 00018 void SetDeleteByMap(bool x = true) { m_delete_by_map = x; } 00019 bool DeleteByMap() { return m_delete_by_map; } 00020 00021 virtual long get_property(const std::string& ) = 0; 00022 00023 // common properties 00024 virtual mapobject_t GetType() = 0; 00025 00026 private: 00027 Map& m_map; 00028 double m_x; 00029 double m_y; 00030 bool m_delete_by_map; 00031 }; 00032 typedef std::vector<MapObject *> mapobject_v; 00033 00034 00035 00036 #endif // _MAPOBJECT_H