00001 #ifndef __GEOMETRIC_MAP_HH 00002 #define __GEOMETRIC_MAP_HH 00003 00004 #include <boost/numeric/ublas/vector.hpp> 00005 #include <boost/smart_ptr.hpp> 00006 #include <mimas/mm_object.h> 00007 #include <vector> 00008 #include "mi_pose.hh" 00009 00015 class geometric_map: public mimas::mm_object 00016 { 00017 public: 00019 geometric_map( const std::string &_hash_type ): hash_type(_hash_type) {} 00025 virtual std::vector< mi_pose > candidates 00026 ( const std::vector< boost::numeric::ublas::vector< int > > &features ) 00027 const = 0; 00032 virtual bool random_poses 00033 ( const std::vector< boost::numeric::ublas::vector< int > > &features, 00034 mi_pose &pose ) 00035 const = 0; 00038 const std::string get_hash_type(void) const { return hash_type; } 00039 protected: 00041 std::string hash_type; 00042 }; 00043 00045 typedef boost::shared_ptr< geometric_map > geometric_map_ptr; 00046 00047 #endif