00001 #ifndef PlannerBase_h 00002 #define PlannerBase_h 1 00003 00004 #include "kinematics\Configuration.h" 00005 #include "timers\TimerCPU.h" 00006 00007 class CollisionDetectorBase; 00008 class PathBase; 00009 00010 class PlannerBase 00011 { 00012 public: 00013 PlannerBase (); 00014 virtual ~PlannerBase(); 00015 00016 void CopySettings( PlannerBase* original ); 00017 virtual void *GetParameters(); 00018 virtual bool SetParameters(const void *param); 00019 virtual bool ValidateParameters(); 00020 virtual bool Plan () = 0; 00021 virtual const PathBase* GetPath () const = 0; 00022 virtual void SetCollisionDetector (CollisionDetectorBase* collisionDetector); 00023 bool HasTimeLimitExpired () const; 00024 void StartTimer () const; 00025 void SetTimeLimitInSeconds (double newTimeLimit); 00026 virtual bool Save (const char *filename) const; 00027 virtual bool Load (const char *filename); 00028 bool GetPlanSuccess () const; 00029 void SetPlanSuccess (bool success); 00030 double GetTimeLimitInSeconds () const; 00031 double GetTimeElapsedInSeconds() const; 00032 int GetGuid() const; 00033 virtual void SetStartConfig (const Configuration& configuration); 00034 virtual void SetGoalConfig (const Configuration& configuration); 00035 const Configuration& GetStartConfig() const; 00036 const Configuration& GetGoalConfig() const; 00037 00038 bool m_UseSemaphores; 00039 protected: 00040 double timeLimitInSeconds; 00041 bool planSuccessful; 00042 int guid; 00043 char *paramBuffer; 00044 int sizeOfParameterBuffer; 00045 mutable TimerCPU timer; 00046 00047 private: 00048 Configuration startConfig; 00049 Configuration goalConfig; 00050 }; 00051 00052 #endif