00001
00002
00003
00004
00005 #ifndef CAJUN_GUIDE_MODE_H
00006 #define CAJUN_GUIDE_MODE_H
00007
00008
00009 #include "data_type.H"
00010 #include "uniform_path.H"
00011 #include "integral.H"
00012
00013 namespace cajun
00014 {
00017 class guide_mode_t
00018 {
00019 public:
00020 virtual ~guide_mode_t (){}
00021 virtual void guide (guide_data_t &gd,
00022 const uniform_path_t &goal_data,
00023 unsigned goal_index, double x, double y,
00024 double heading, double speed,
00025 bool valid_path, bool forward,
00026 bool tight_path, double tstamp) = 0;
00027 protected:
00028 void compute_guide_values (guide_data_t &gd,
00029 waypoint_t goal_wp,
00030 double x, double y,
00031 double heading);
00032 void set_default_guide_values (guide_data_t &gd, double x,
00033 double y, double heading);
00034 };
00035 };
00036
00037
00038 #endif