00001 /* -*- mode: C++ -*- 00002 * 00003 * Navigator passing controller 00004 * 00005 * Copyright (C) 2007, 2010, Austin Robot Technology 00006 * 00007 * License: Modified BSD Software License Agreement 00008 * 00009 * $Id: passing.h 1641 2011-08-12 18:27:24Z jack.oquin $ 00010 */ 00011 00012 #ifndef __PASSING_HH__ 00013 #define __PASSING_HH__ 00014 00015 //class Avoid; 00016 class Halt; 00017 class FollowSafely; 00018 class SlowForCurves; 00019 00020 class Passing: public Controller 00021 { 00022 public: 00023 00024 Passing(Navigator *navptr, int _verbose); 00025 ~Passing(); 00026 result_t control(pilot_command_t &pcmd); 00027 void reset(void); 00028 00029 private: 00030 bool in_passing_lane; 00031 00032 //Avoid *avoid; 00033 Halt *halt; 00034 FollowSafely *follow_safely; 00035 SlowForCurves *slow_for_curves; 00036 00037 bool done_passing(void); 00038 00039 // reset this controller only 00040 void reset_me(void); 00041 }; 00042 00043 #endif // __PASSING_HH__