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