Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
graphManagerAbstract.hpp
00001 #ifndef GRAPHMANAGERABSTRACT_HPP
00002 #define GRAPHMANAGERABSTRACT_HPP
00003 
00004 #include <boost/graph/adjacency_list.hpp>
00005 
00006 #include <kernel/IdFactory.hpp>
00007 
00008 #include <graphmap/transformation.hpp>
00009 #include <graphmap/graphProperties.hpp>
00010 
00011 namespace jafar{
00012 namespace graphmap{
00013 
00014 class GraphManagerAbstract
00015 {
00016 public:
00017   typedef boost::adjacency_list<boost::setS, boost::vecS, boost::bidirectionalS, Vertex_Properties, Edge_Properties, Graph_Properties> Graph;
00018   typedef typename boost::graph_traits<Graph>::vertex_descriptor vertex_descriptor;
00019   typedef typename boost::graph_traits<Graph>::edge_descriptor edge_descriptor;
00020 
00021   typedef kernel::IdFactory<MapId, kernel::IdCollectorNone> IdFactory;
00022 
00023   GraphManagerAbstract(RobotId robotId);
00024   virtual ~GraphManagerAbstract() {}
00025 
00026   virtual bool addNewEdge(RobotId from_robot, MapId from_map,
00027               RobotId to_robot, MapId to_map,
00028               Transformation t) = 0;
00029 
00035   vertex_descriptor getVertexDesc(const RobotId &rob_id, const MapId &map_id);
00036 
00039   vertex_descriptor getVertexDesc(const MapId &map_id);
00040 
00043   vertex_descriptor getVertexDesc(const Vertex &v_id);
00044 
00048   Vertex getVertex(const vertex_descriptor &desc);
00049 
00050   static IdFactory mapIds;
00051   vertex_descriptor _origin_vertex;
00052   vertex_descriptor _current_vertex;
00053   RobotId _robot_id;
00054   std::map<Vertex,vertex_descriptor> _vertex_map;
00055   Graph _graph;
00056   Transformation _robot_current_pose;
00057 
00058 };
00059 
00060 } // namespace graphmap
00061 } // namespace jafar
00062 
00063 #endif // GRAPHMANAGERABSTRACT_HPP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:20 for Jafar by doxygen 1.7.6.1
LAAS-CNRS