src/smp/components/extenders/base.h

Go to the documentation of this file.
00001 
00007 #ifndef _SMP_EXTENDER_BASE_H_
00008 #define _SMP_EXTENDER_BASE_H_
00009 
00010 
00011 #include <smp/planner_utils/trajectory.h>
00012 #include <smp/planner_utils/vertex_edge.h>
00013 
00014 #include <list>
00015 
00016 using namespace std;
00017 
00018 
00019 namespace smp {
00020 
00022 
00029     template< class typeparams >
00030     class extender_base {
00031 
00032 
00033 
00034         typedef typename typeparams::state state_t;
00035         typedef typename typeparams::input input_t;
00036         typedef typename typeparams::vertex_data vertex_data_t;
00037         typedef typename typeparams::edge_data edge_data_t;
00038 
00039         typedef vertex<typeparams> vertex_t;
00040         typedef edge<typeparams> edge_t;
00041 
00042         typedef trajectory< typeparams > trajectory_t;
00043     
00044 
00045     public:
00046 
00057         virtual int ex_update_insert_vertex (vertex_t *vertex_in) = 0;
00058     
00059 
00070         virtual int ex_update_insert_edge (edge_t *edge_in) = 0;    
00071 
00082         virtual int ex_update_delete_vertex (vertex_t *vertex_in) = 0;
00083     
00084 
00095         virtual int ex_update_delete_edge (edge_t *edge_in) = 0;    
00096 
00097     
00116         virtual int extend (state_t *state_from_in, state_t *state_towards_in,
00117                             int *exact_connection_out, trajectory_t *trajectory_out,
00118                             list<state_t*> *intermediate_vertices_out) = 0;
00119 
00120     };
00121 
00122 }
00123 
00124 #endif