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