Homepage Demos Overview Downloads Tutorials Reference
Credits
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages | Search

agmMain.h

Go to the documentation of this file.
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