00001 #pragma once 00002 00003 #include "intellirobotStub.h" 00004 #include "std_hdr.h" 00005 #include "ImageData.h" 00006 00007 typedef struct _tag_CeilingOdometry 00008 { 00009 unsigned long m_x; 00010 unsigned long m_y; 00011 double m_theta; 00012 } CeilingOdometry_st, *CeilingOdometry_pst; 00013 00014 typedef struct _tag_SignedOdometry 00015 { 00016 long m_x; 00017 long m_y; 00018 double m_theta; 00019 } SignedOdometry_st, *SignedOdometry_pst; 00020 00024 class CeilingMap : public ImageData 00025 { 00026 public: 00027 CeilingMap(void); 00028 ~CeilingMap(void); 00029 00030 void ReadNavigationMap(std::string map_name); 00031 void SetLocation(unsigned long x, unsigned long y, double theta); 00032 void SetLocation(CeilingOdometry_st value); 00033 CeilingOdometry_st GetLocation(); 00034 void IncrementOdometry(long x, long y, double theta); 00035 void IncrementOdometry(SignedOdometry_st value); 00036 00041 double GetTheta() { return m_CurOdometry.m_theta; } 00042 00047 unsigned long GetPosX() { return m_CurOdometry.m_x; } 00048 00053 unsigned long GetPosY() { return m_CurOdometry.m_y; } 00054 00055 private: 00056 CeilingOdometry_st m_CurOdometry; /* 対象の位置情報 */ 00057 };