00001 #ifndef DISCRETE_SPACE_TIME_INTERVAL_INFORMATION_H 00002 #define DISCRETE_SPACE_TIME_INTERVAL_INFORMATION_H 00003 00004 #include <sbpl/headers.h> 00005 #include <sbpl_dynamic_planner/sbpl_dynamicObstacles.h> 00006 00007 class DiscreteSpaceTimeIntervalInformation : public DiscreteSpaceInformation{ 00008 public: 00009 virtual void GetSuccs(int SourceStateID, vector<int>* SuccIDV, vector<int>* CostV){SBPL_ERROR("ERROR: this environment requires to know if this expansion is optimal or not!\n");throw new SBPL_Exception();} 00010 virtual void GetSuccs(int SourceStateID, vector<int>* SuccIDV, vector<int>* CostV, vector<bool>* OptV, bool optSearch) = 0; 00011 virtual void Relax(int stateID){} 00012 virtual bool setDynamicObstacles(vector<SBPL_DynamicObstacle_t> dynObs, bool reset_states=true) = 0; 00013 virtual bool UpdateCost(int x, int y, unsigned char newcost) = 0; 00014 virtual int SetStart(double x, double y, double theta, double startTime) = 0; 00015 virtual int SetGoal(double x, double y, double theta) = 0; 00016 virtual unsigned char GetMapCost(int x, int y) = 0; 00017 virtual void GetCoordFromState(int stateID, int& x, int& y, int& theta, int& t) const = 0; 00018 virtual void ConvertStateIDPathintoXYThetaPath(vector<int>* stateIDPath, vector<SBPL_4Dpt_t>* xythetaPath) = 0; 00019 virtual void getExpansions(vector<SBPL_4Dpt_t>* p){} 00020 virtual bool InitializeEnv(int width, int height, 00022 const unsigned char* mapdata, 00023 double startx, double starty, double starttheta, double startTime, 00024 double goalx, double goaly, double goaltheta, 00025 double goaltol_x, double goaltol_y, double goaltol_theta, 00026 const vector<sbpl_2Dpt_t> & perimeterptsV, 00027 double cellsize_m, double timeResolution, double temporal_padding_c, 00028 double nominalvel_mpersecs, double timetoturn45degsinplace_secs, 00029 unsigned char obsthresh, unsigned char dynobsthresh, const char* sMotPrimFile, 00030 vector<SBPL_DynamicObstacle_t> & dynObs) = 0; 00031 }; 00032 00033 #endif