mi_object_instance.hh

00001 #ifndef __MI_OBJECT_INSTANCE_H
00002 #define __MI_OBJECT_INSTANCE_H
00003 
00004 #include <boost/smart_ptr.hpp>
00005 #include <map>
00006 #include <mimas/mm_object.h>
00007 #include <utility>
00008 #include "instance_data.hh"
00009 #include "mi_object_type.hh"
00010 #include "mi_pose.hh"
00011 #include "vision_type.hh"
00012 
00024 class mi_object_instance: public mimas::mm_object
00025 {
00026 public:
00036   mi_object_instance( const std::string &_type, int _nr,
00037                       double _timestamp,
00038                       mi_pose _pose,
00039                       vision_type type,
00040                       instance_data_ptr _data ):
00041     id( _type, _nr ), timestamp( _timestamp ), pose( _pose )
00042   { internal_data[ type ] = _data; }
00048   std::string get_type(void) const { return id.first; }
00051   int get_id(void) const { return id.second; }
00057   double get_timestamp(void) const { return timestamp; }
00065   const mi_pose &get_pose(void) const { return pose; }
00067   instance_data_ptr data( vision_type type ) { return internal_data[ type ]; }
00068 protected:
00070   std::pair< std::string, int > id;
00072   double timestamp;
00074   mi_pose pose;
00076   std::map< vision_type, instance_data_ptr > internal_data;
00077 };
00078 
00080 typedef boost::shared_ptr< mi_object_instance > mi_object_instance_ptr;
00081 
00083 
00084 #endif

doxygen-1.4.5 documentation for micron-vision - Tue Jan 17 15:29:15 2006