Go to the documentation of this file.00001
00009 #ifndef _SMP_DISTANCE_EVALUATOR_BASE_H_
00010 #define _SMP_DISTANCE_EVALUATOR_BASE_H_
00011
00012
00013 #include <smp/planner_utils/vertex_edge.h>
00014
00015
00016 #include <list>
00017 using namespace std;
00018
00019 namespace smp {
00020
00022
00029 template< class typeparams >
00030 class distance_evaluator_base {
00031
00032
00033 typedef typename typeparams::state state_t;
00034 typedef typename typeparams::input input_t;
00035 typedef typename typeparams::vertex_data vertex_data_t;
00036 typedef typename typeparams::edge_data edge_data_t;
00037
00038 typedef vertex<typeparams> vertex_t;
00039 typedef edge<typeparams> edge_t;
00040
00041
00042 public:
00043 virtual ~distance_evaluator_base () { };
00044
00045
00056 virtual int de_update_insert_vertex (vertex_t *vertex_in) = 0;
00057
00058
00069 virtual int de_update_insert_edge (edge_t *edge_in) = 0;
00070
00081 virtual int de_update_delete_vertex (vertex_t *vertex_in) = 0;
00082
00083
00094 virtual int de_update_delete_edge (edge_t *edge_in) = 0;
00095
00096
00110 virtual int find_nearest_vertex (state_t *state_in,
00111 void **data_out) = 0;
00112
00113
00129 virtual int find_near_vertices_r (state_t *state_in, double radius_in,
00130 list<void*> *list_data_out) = 0;
00131
00145 virtual int find_near_vertices_k (state_t *state_in, int k_in,
00146 list<void*> *list_data_out) = 0;
00147
00148 };
00149
00150 }
00151
00152 #endif