Homepage | Demos | Overview | Downloads | Tutorials | Reference | Credits |
00001 /* 00002 * agmMain.h -- defines the main class for interfacing with the AIBO 00003 * Global (height) Map. 00004 * 00005 * Started 1-21-2002, tss 00006 */ 00007 00008 #ifndef _AGM_MAIN_H_ 00009 #define _AGM_MAIN_H_ 00010 00011 #include "almStructures.h" 00012 #include "../WorldModel2.h" 00013 #include <iostream> 00014 00015 // This class contains method declarations for interfacint with the AIBO 00016 // Global Map. Same C in disguise as C++ deal as the Local Map. It's not 00017 // my fault--if we had a working malloc, things would be different! 00018 class AGM 00019 { 00020 // WorldModel2 has access to us to gather motion requests 00021 friend class WorldModel2; 00022 00023 public: 00024 // This method initializes the static table used to hold the map data. 00025 // Yes, you have to manually run an initializer. I apologize! 00026 static void init(void); 00027 00028 // Carry over information from the local height map. More literally, 00029 // see about placing height map cell at x,y. We may not do it if data 00030 // there are from a measurement we're more confident about. 00031 static void carryOver(double x, double y, hm_cell &cell); 00032 00033 // Tax the certainty of the global map after a move 00034 static void decay(); 00035 00036 // Dump map data selected by a hmPicker you implement (or just 00037 // instantiate) into the supplied iostream. Uses ASCII .mat file 00038 // "format", seperating row elements with tabs and rows with newlines. 00039 static void dump(hmPicker &p, std::ostream &out); 00040 00041 // What this thing does with all this information remains to be seen... 00042 00043 #ifndef UNIT_TEST_AGM_MA 00044 private: 00045 #endif 00046 00047 // This method generates motion requests for WorldModel2. It's the reason 00048 // WorldModel2 is our friend. 00049 static void genRequests(MRvector &requests); 00050 00051 // This method provides direct access to the global map data array. You 00052 // should use GM_CELL_COUNT to index the array. This method is PRIVATE 00053 // and is intended only for use by WorldModel2 objects. 00054 // Whenever you want to access the GM array, you should always call 00055 // this routine before doing your manipulation. This is because 00056 // double buffering may be used here, and you may find yourself pointing at 00057 // an old buffer if you don't update your pointers. 00058 static hm_cell *getGM(); 00059 }; 00060 00061 #endif
Tekkotsu v1.4 |
Generated Sat Jul 19 00:06:29 2003 by Doxygen 1.3.2 |