src/smp/components/distance_evaluators/base.h

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