planners/PlannerBase.h

Go to the documentation of this file.
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

Generated on Sat Apr 1 21:30:44 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO