Go to the documentation of this file.00001 #ifndef Map2DPosVar_H
00002 #define Map2DPosVar_H
00003
00004
00005 #include <vector>
00006 #include <string>
00007 #include "MOMDP.h"
00008 #include "IVariable.h"
00009 #include "Map2DPosValue.h"
00010
00011 using namespace std;
00012 using namespace momdp;
00013
00014 namespace momdp
00015 {
00016 class Map2D;
00017 class Map2DPosVar : public IVariable
00018 {
00019 friend class Map2D;
00020 private:
00021 string variableName;
00022 SharedPointer<Map2DPosValue> initPos;
00023
00024 protected:
00025
00026 Map2DPosVar(string name, int width, int height);
00027 virtual ~Map2DPosVar(void);
00028 public:
00029 int height;
00030 int width;
00031
00032 virtual void setInitPos(SharedPointer<Map2DPosValue> pos);
00033
00034 virtual string getVariableName();
00035 virtual SharedPointer<IVariableValue> getValueByName(string valName);
00036
00037 virtual vector<SharedPointer<IVariableValue> > getInitialValues();
00038
00039
00040 virtual int getNumValues();
00041
00042 virtual vector<SharedPointer<IVariableValue> > getValues();
00043
00044 virtual vector<SharedPointer<Map2DPosValue> > getDestSidePosPerpendicularToMovement(SharedPointer<Map2DPosValue> src, SharedPointer<Map2DPosValue> dest);
00045
00046 virtual vector<SharedPointer<Map2DPosValue> > getAdjPos( SharedPointer<Map2DPosValue> src, double range);
00047
00048 };
00049
00050 }
00051
00052 #endif
00053