src/smp/components/cost_evaluators/base.h

Go to the documentation of this file.
00001 
00008 #ifndef _SMP_COST_EVALUATOR_BASE_H_
00009 #define _SMP_COST_EVALUATOR_BASE_H_
00010 
00011 #include <smp/planner_utils/trajectory.h>
00012 #include <smp/planner_utils/vertex_edge.h>
00013 
00014 
00015 namespace smp {
00016 
00018 
00025     template< class typeparams >
00026     class cost_evaluator_base {
00027 
00028         typedef typename typeparams::state state_t;
00029         typedef typename typeparams::input input_t;
00030         typedef typename typeparams::vertex_data vertex_data_t;
00031         typedef typename typeparams::edge_data edge_data_t;
00032 
00033         typedef vertex<typeparams> vertex_t;
00034         typedef edge<typeparams> edge_t;
00035 
00036         typedef trajectory<typeparams> trajectory_t;
00037 
00038     public:
00039 
00040 
00051         virtual int ce_update_vertex_cost (vertex_t *vertex_in) = 0;
00052 
00053     
00064         virtual int ce_update_edge_cost (edge_t *edge_in) = 0;
00065     
00066     
00081         virtual double evaluate_cost_trajectory (state_t *state_initial_in,
00082                                                  trajectory_t *trajectory_in,
00083                                                  state_t *state_final_in = 0) = 0;
00084     
00085     };
00086 
00087 
00088 }
00089 
00090 #endif