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