00001 00010 #ifndef _SMP_PLANNER_INCREMENTAL_H_ 00011 #define _SMP_PLANNER_INCREMENTAL_H_ 00012 00013 #include <smp/planners/base.h> 00014 00015 00016 namespace smp { 00017 00019 00027 template< class typeparams > 00028 class planner_incremental : public planner< typeparams > { 00029 00030 00031 typedef typename typeparams::state state_t; 00032 00033 typedef vertex<typeparams> vertex_t; 00034 typedef planner<typeparams> planner_t; 00035 00036 typedef trajectory<typeparams> trajectory_t; 00037 00038 typedef sampler_base<typeparams> sampler_t; 00039 typedef distance_evaluator_base<typeparams> distance_evaluator_t; 00040 typedef extender_base<typeparams> extender_t; 00041 typedef collision_checker_base<typeparams> collision_checker_t; 00042 typedef model_checker_base<typeparams> model_checker_t; 00043 00044 public: 00045 00047 00052 vertex_t *root_vertex; 00053 00054 planner_incremental (); 00055 ~planner_incremental (); 00056 00068 planner_incremental (sampler_t &sampler_in, distance_evaluator_t &distance_evaluator_in, extender_t &extender_in, 00069 collision_checker_t &collision_checker_in, model_checker_t &model_checker_in); 00070 00071 00085 int initialize (state_t *initial_state_in = 0); 00086 00087 00096 vertex_t* get_root_vertex() {return root_vertex;} 00097 00106 virtual int iteration () = 0; 00107 }; 00108 00109 00110 } 00111 00112 #endif