HOG2
Map2DEnvironment.h
Go to the documentation of this file.
1 /*
2  * Map2DEnvironment.h
3  * hog2
4  *
5  * Created by Nathan Sturtevant on 4/20/07.
6  * Copyright 2007 Nathan Sturtevant, University of Alberta. All rights reserved.
7  *
8  */
9 
10 #ifndef MAP2DENVIRONMENT_H
11 #define MAP2DENVIRONMENT_H
12 
13 #include <stdint.h>
14 #include <stdlib.h>
15 #include <string>
16 #include <iostream>
17 #include "Map.h"
18 //#include "MapAbstraction.h"
19 #include "SearchEnvironment.h"
20 #include "UnitSimulation.h"
21 #include "ReservationProvider.h"
22 #include "BitVector.h"
23 #include "GraphEnvironment.h"
24 #include "Graphics.h"
25 
26 #include <cassert>
27 
28 //#include "BaseMapOccupancyInterface.h"
29 
31  kNoOptions = 0x0,
32  kEfficientCells = 0x1, // This is expensive because the regions are optimized, but results in far fewer drawing commands
33  kTerrainBorderLines = 0x2, // This is expensive because the lines are optimized, but results in far fewer drawing commands
35 };
36 
37 struct xyLoc {
38 public:
39  xyLoc() { x = -1; y = -1; }
40  xyLoc(uint16_t _x, uint16_t _y) :x(_x), y(_y) {}
41  uint16_t x;
42  uint16_t y;
43  bool operator<(const xyLoc &b)
44  {
45  if (y == b.y)
46  return (x < b.x);
47  if (y < b.y)
48  return true;
49  return false;
50  }
51 };
52 
53 struct xyLocHash
54 {
55  std::size_t operator()(const xyLoc & x) const
56  {
57  return (x.x<<16)|(x.y);
58  }
59 };
60 
61 
62 static std::ostream& operator <<(std::ostream & out, const xyLoc &loc)
63 {
64  out << "(" << loc.x << ", " << loc.y << ")";
65  return out;
66 }
67 
68 static bool operator==(const xyLoc &l1, const xyLoc &l2) {
69  return (l1.x == l2.x) && (l1.y == l2.y);
70 }
71 
72 static bool operator!=(const xyLoc &l1, const xyLoc &l2) {
73  return (l1.x != l2.x) || (l1.y != l2.y);
74 }
75 
76 
77 enum tDirection {
78  kN=0x8, kS=0x4, kE=0x2, kW=0x1, kNW=kN|kW, kNE=kN|kE,
80 };
81 
82 class BaseMapOccupancyInterface : public OccupancyInterface<xyLoc,tDirection>
83 {
84 public:
87  virtual void SetStateOccupied(const xyLoc&, bool);
88  virtual bool GetStateOccupied(const xyLoc&);
89  virtual bool CanMove(const xyLoc&, const xyLoc&);
90  virtual void MoveUnitOccupancy(const xyLoc &, const xyLoc&);
91 
92 private:
93  //BitVector *bitvec; /// For each map position, set if occupied
94  std::vector<bool> bitvec;
95  long mapWidth;
96  long mapHeight;
97 
98  long CalculateIndex(uint16_t x, uint16_t y);
99 };
100 
101 
102 const int numPrimitiveActions = 8;
103 const int numActions = 10;
105 const int kStayIndex = 8; // index of kStay
106 
107 
108 namespace std {
109 
110  template <>
111  struct hash<xyLoc>
112  {
113  std::size_t operator()(const xyLoc& k) const
114  {
115  return (((std::size_t)k.x)<<16)|k.y;
116  }
117  };
118 
119 }
120 
121 
122 class EuclideanDistance : public Heuristic<xyLoc> {
123 public:
124  double HCost(const xyLoc &a, const xyLoc &b) const
125  {
126  return sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
127  }
128 };
129 
130 //typedef OccupancyInterface<xyLoc, tDirection> BaseMapOccupancyInterface;
131 
132 
133 class MapEnvironment : public SearchEnvironment<xyLoc, tDirection>
134 {
135 public:
136  MapEnvironment(Map *m, bool useOccupancy = false);
138  virtual ~MapEnvironment();
141  virtual void GetSuccessors(const xyLoc &nodeID, std::vector<xyLoc> &neighbors) const;
142  bool GetNextSuccessor(const xyLoc &currOpenNode, const xyLoc &goal, xyLoc &next, double &currHCost, uint64_t &special, bool &validMove);
143  bool GetNext4Successor(const xyLoc &currOpenNode, const xyLoc &goal, xyLoc &next, double &currHCost, uint64_t &special, bool &validMove);
144  bool GetNext8Successor(const xyLoc &currOpenNode, const xyLoc &goal, xyLoc &next, double &currHCost, uint64_t &special, bool &validMove);
145  void GetActions(const xyLoc &nodeID, std::vector<tDirection> &actions) const;
146  tDirection GetAction(const xyLoc &s1, const xyLoc &s2) const;
147  virtual void ApplyAction(xyLoc &s, tDirection dir) const;
149 
150  virtual bool InvertAction(tDirection &a) const;
151  std::string GetName() { return std::string(map->GetMapName()); }
152 // bool Contractable(const xyLoc &where);
153 
154  virtual double HCost(const xyLoc &) const {
155  fprintf(stderr, "ERROR: Single State HCost not implemented for MapEnvironment\n");
156  exit(1); return -1.0;}
157  virtual double HCost(const xyLoc &node1, const xyLoc &node2) const;
158 
159  virtual double GCost(const xyLoc &node1, const xyLoc &node2) const;
160  virtual double GCost(const xyLoc &node1, const tDirection &act) const;
161  bool GoalTest(const xyLoc &node, const xyLoc &goal) const;
162 
163  bool GoalTest(const xyLoc &){
164  fprintf(stderr, "ERROR: Single State Goal Test not implemented for MapEnvironment\n");
165  exit(1); return false;}
166 
167  uint64_t GetMaxHash() const;
168  uint64_t GetStateHash(const xyLoc &node) const;
169  void GetStateFromHash(uint64_t parent, xyLoc &s) const;
170  uint64_t GetActionHash(tDirection act) const;
171  virtual void OpenGLDraw() const;
172  virtual void OpenGLDraw(const xyLoc &l) const;
173  virtual void OpenGLDraw(const xyLoc &l1, const xyLoc &l2, float v) const;
174  virtual void OpenGLDraw(const xyLoc &, const tDirection &) const;
175  virtual void GLLabelState(const xyLoc &, const char *) const;
176  virtual void GLLabelState(const xyLoc &s, const char *str, double scale) const;
177  virtual void GLDrawLine(const xyLoc &x, const xyLoc &y) const;
178 
179  std::string SVGHeader();
180  std::string SVGDraw();
181  std::string SVGDraw(const xyLoc &);
182  std::string SVGLabelState(const xyLoc &, const char *, double scale) const;
183  std::string SVGLabelState(const xyLoc &, const char *, double scale, double xoff, double yoff) const;
184  std::string SVGDrawLine(const xyLoc &x, const xyLoc &y, int width=1) const;
185  std::string SVGFrameRect(int left, int top, int right, int bottom, int width = 1);
186 
187  void Draw(Graphics::Display &disp) const;
188  void Draw(Graphics::Display &disp, const xyLoc &l) const;
189  void DrawAlternate(Graphics::Display &disp, const xyLoc &l) const;
190  void Draw(Graphics::Display &disp, const xyLoc &l1, const xyLoc &l2, float v) const;
191  void DrawStateLabel(Graphics::Display &disp, const xyLoc &l1, const char *txt) const;
192  void DrawStateLabel(Graphics::Display &disp, const xyLoc &l1, const xyLoc &l2, float v, const char *txt) const;
193  void DrawLine(Graphics::Display &disp, const xyLoc &x, const xyLoc &y, double width = 1.0) const;
194  void DrawArrow(Graphics::Display &disp, const xyLoc &x, const xyLoc &y, double width = 1.0) const;
195  Graphics::point GetStateLoc(const xyLoc &l1);
197 
198  //virtual void OpenGLDraw(const xyLoc &, const tDirection &, GLfloat r, GLfloat g, GLfloat b) const;
199  //virtual void OpenGLDraw(const xyLoc &l, GLfloat r, GLfloat g, GLfloat b) const;
200  Map* GetMap() const { return map; }
201 
202  virtual void GetNextState(const xyLoc &currents, tDirection dir, xyLoc &news) const;
203 
204  void StoreGoal(xyLoc &) {} // stores the locations for the given goal state
205  void ClearGoal() {}
206  bool IsGoalStored() const {return false;}
207  void SetDiagonalCost(double val) { DIAGONAL_COST = val; }
208  double GetDiagonalCost() { return DIAGONAL_COST; }
209  bool FourConnected() { return fourConnected; }
210  bool EightConnected() { return !fourConnected; }
211  void SetFourConnected() { fourConnected = true; }
212  void SetEightConnected() { fourConnected = false; }
213  //virtual BaseMapOccupancyInterface* GetOccupancyInterface(){std::cout<<"Mapenv\n";return oi;}
214  //virtual xyLoc GetNextState(xyLoc &s, tDirection dir);
215 // double GetPathLength(std::vector<xyLoc> &neighbors);
216 private:
217  void GetMaxRect(long terrain, int x, int y, int endx, int endy, std::vector<bool> &drawn, Graphics::rect &r) const;
218  void DrawSingleTerrain(long terrain, Graphics::Display &disp, std::vector<bool> &drawn) const;
219 protected:
226 };
227 /*
228 class AbsMapEnvironment : public MapEnvironment
229 {
230 public:
231  AbsMapEnvironment(MapAbstraction *ma);
232  virtual ~AbsMapEnvironment();
233  MapAbstraction *GetMapAbstraction() { return ma; }
234  void OpenGLDraw() const { map->OpenGLDraw(); ma->OpenGLDraw(); }
235  void OpenGLDraw(const xyLoc &l) const { MapEnvironment::OpenGLDraw(l); }
236  void OpenGLDraw(const xyLoc& s, const tDirection &dir) const {MapEnvironment::OpenGLDraw(s,dir);}
237  void OpenGLDraw(const xyLoc &l1, const xyLoc &l2, float v) const { MapEnvironment::OpenGLDraw(l1, l2, v); }
238 
239  //virtual BaseMapOccupancyInterface* GetOccupancyInterface(){std::cout<<"AbsMap\n";return oi;}
240 protected:
241  MapAbstraction *ma;
242 };
243 */
245 //typedef UnitSimulation<xyLoc, tDirection, AbsMapEnvironment> UnitAbsMapSimulation;
246 
247 
248 //template<>
249 //void UnitSimulation<xyLoc, tDirection, MapEnvironment>::OpenGLDraw()
250 //{
251 // env->OpenGLDraw();
252 // for (unsigned int x = 0; x < units.size(); x++)
253 // {
254 // units[x]->agent->OpenGLDraw(env);
255 // }
256 //}
257 //
258 //template<>
259 //void UnitSimulation<xyLoc, tDirection, AbsMapEnvironment>::OpenGLDraw()
260 //{
261 // env->OpenGLDraw();
262 // for (unsigned int x = 0; x < units.size(); x++)
263 // {
264 // units[x]->agent->OpenGLDraw(env);
265 // }
266 //}
267 
268 #endif
BaseMapOccupancyInterface::mapWidth
long mapWidth
Definition: Map2DEnvironment.h:95
MapEnvironment::GetDiagonalCost
double GetDiagonalCost()
Definition: Map2DEnvironment.h:208
Graphics::point
Definition: Graphics.h:32
loc::x
int x
Definition: MapGenerators.cpp:296
MapEnvironment::SVGHeader
std::string SVGHeader()
Definition: Map2DEnvironment.cpp:732
MapEnvironment::GoalTest
bool GoalTest(const xyLoc &node, const xyLoc &goal) const
Definition: Map2DEnvironment.cpp:524
UnitSimulation.h
MapEnvironment::DrawAlternate
void DrawAlternate(Graphics::Display &disp, const xyLoc &l) const
Definition: Map2DEnvironment.cpp:1361
MapEnvironment::InvertAction
virtual bool InvertAction(tDirection &a) const
Definition: Map2DEnvironment.cpp:415
BaseMapOccupancyInterface::bitvec
std::vector< bool > bitvec
Definition: Map2DEnvironment.h:94
kSE
@ kSE
Definition: Map2DEnvironment.h:79
UnitMapSimulation
UnitSimulation< xyLoc, tDirection, MapEnvironment > UnitMapSimulation
Definition: Map2DEnvironment.h:244
MapEnvironment::SetDrawOptions
void SetDrawOptions(drawOptions o)
Definition: Map2DEnvironment.h:196
MapEnvironment::GetName
std::string GetName()
Definition: Map2DEnvironment.h:151
BaseMapOccupancyInterface::CalculateIndex
long CalculateIndex(uint16_t x, uint16_t y)
used to compute index into bitvector
Definition: Map2DEnvironment.cpp:1613
MapEnvironment::GetStateFromHash
void GetStateFromHash(uint64_t parent, xyLoc &s) const
Definition: Map2DEnvironment.cpp:541
MapEnvironment::SetFourConnected
void SetFourConnected()
Definition: Map2DEnvironment.h:211
BaseMapOccupancyInterface::GetStateOccupied
virtual bool GetStateOccupied(const xyLoc &)
Returns the occupancy of a state.
Definition: Map2DEnvironment.cpp:1593
BaseMapOccupancyInterface
Definition: Map2DEnvironment.h:82
kTeleport
@ kTeleport
Definition: Map2DEnvironment.h:79
MapEnvironment::GetNext4Successor
bool GetNext4Successor(const xyLoc &currOpenNode, const xyLoc &goal, xyLoc &next, double &currHCost, uint64_t &special, bool &validMove)
Definition: Map2DEnvironment.cpp:102
loc::y
int y
Definition: MapGenerators.cpp:296
Heuristic
Definition: Heuristic.h:30
MapEnvironment::SetGraphHeuristic
void SetGraphHeuristic(GraphHeuristic *h)
Definition: Map2DEnvironment.cpp:54
xyLoc::y
uint16_t y
Definition: Map2DEnvironment.h:42
MapEnvironment::GetMap
Map * GetMap() const
Definition: Map2DEnvironment.h:200
MapEnvironment::GetStateLoc
Graphics::point GetStateLoc(const xyLoc &l1)
Definition: Map2DEnvironment.cpp:1385
MapEnvironment::EightConnected
bool EightConnected()
Definition: Map2DEnvironment.h:210
numPrimitiveActions
const int numPrimitiveActions
Definition: Map2DEnvironment.h:102
kW
@ kW
Definition: Map2DEnvironment.h:78
MapEnvironment::~MapEnvironment
virtual ~MapEnvironment()
Definition: Map2DEnvironment.cpp:43
MapEnvironment::IsGoalStored
bool IsGoalStored() const
Definition: Map2DEnvironment.h:206
operator==
static bool operator==(const xyLoc &l1, const xyLoc &l2)
Definition: Map2DEnvironment.h:68
MapEnvironment::oi
BaseMapOccupancyInterface * oi
Definition: Map2DEnvironment.h:222
MapEnvironment::SVGDraw
std::string SVGDraw()
Definition: Map2DEnvironment.cpp:744
MapEnvironment::drawParams
drawOptions drawParams
Definition: Map2DEnvironment.h:225
operator!=
static bool operator!=(const xyLoc &l1, const xyLoc &l2)
Definition: Map2DEnvironment.h:72
Graphics::rect
Definition: Graphics.h:94
MapEnvironment::GetOccupancyInfo
virtual BaseMapOccupancyInterface * GetOccupancyInfo()
Definition: Map2DEnvironment.h:148
BaseMapOccupancyInterface::MoveUnitOccupancy
virtual void MoveUnitOccupancy(const xyLoc &, const xyLoc &)
Updates the occupancy interface when a unit moves.
Definition: Map2DEnvironment.cpp:1629
MapEnvironment::SVGLabelState
std::string SVGLabelState(const xyLoc &, const char *, double scale) const
Definition: Map2DEnvironment.cpp:906
xyLoc
Definition: Map2DEnvironment.h:37
width
int width
Definition: SFML_HOG.cpp:54
kNoOptions
@ kNoOptions
Definition: Map2DEnvironment.h:31
BaseMapOccupancyInterface::mapHeight
long mapHeight
Used to compute index into bitvector.
Definition: Map2DEnvironment.h:96
kCellBorderLines
@ kCellBorderLines
Definition: Map2DEnvironment.h:34
kStayIndex
const int kStayIndex
Definition: Map2DEnvironment.h:105
MapEnvironment::GCost
virtual double GCost(const xyLoc &node1, const xyLoc &node2) const
Definition: Map2DEnvironment.cpp:507
MapEnvironment::SVGDrawLine
std::string SVGDrawLine(const xyLoc &x, const xyLoc &y, int width=1) const
Definition: Map2DEnvironment.cpp:936
kEfficientCells
@ kEfficientCells
Definition: Map2DEnvironment.h:32
MapEnvironment::OpenGLDraw
virtual void OpenGLDraw() const
Definition: Map2DEnvironment.cpp:552
MapEnvironment::Draw
void Draw(Graphics::Display &disp) const
Definition: Map2DEnvironment.cpp:1039
xyLoc::x
uint16_t x
Definition: Map2DEnvironment.h:41
kAll
@ kAll
Definition: Map2DEnvironment.h:79
MapEnvironment::ClearGoal
void ClearGoal()
Clears the goal from memory.
Definition: Map2DEnvironment.h:205
numActions
const int numActions
Definition: Map2DEnvironment.h:103
MapEnvironment::map
Map * map
Definition: Map2DEnvironment.h:221
kStay
@ kStay
Definition: Map2DEnvironment.h:79
MapEnvironment::SetEightConnected
void SetEightConnected()
Definition: Map2DEnvironment.h:212
MapEnvironment::ApplyAction
virtual void ApplyAction(xyLoc &s, tDirection dir) const
Definition: Map2DEnvironment.cpp:432
MapEnvironment::GetMaxRect
void GetMaxRect(long terrain, int x, int y, int endx, int endy, std::vector< bool > &drawn, Graphics::rect &r) const
Definition: Map2DEnvironment.cpp:953
MapEnvironment::StoreGoal
void StoreGoal(xyLoc &)
Stores the goal for use by single-state HCost.
Definition: Map2DEnvironment.h:204
drawOptions
drawOptions
Definition: Map2DEnvironment.h:30
possibleDir
const tDirection possibleDir[numActions]
Definition: Map2DEnvironment.h:104
MapEnvironment
Definition: Map2DEnvironment.h:133
MapEnvironment::FourConnected
bool FourConnected()
Definition: Map2DEnvironment.h:209
loc
Definition: MapGenerators.cpp:296
MapEnvironment::SVGFrameRect
std::string SVGFrameRect(int left, int top, int right, int bottom, int width=1)
Definition: Map2DEnvironment.cpp:894
kE
@ kE
Definition: Map2DEnvironment.h:78
Graphics::Display
Definition: Graphics.h:146
xyLocHash::operator()
std::size_t operator()(const xyLoc &x) const
Definition: Map2DEnvironment.h:55
MapEnvironment::SetDiagonalCost
void SetDiagonalCost(double val)
Definition: Map2DEnvironment.h:207
MapEnvironment::MapEnvironment
MapEnvironment(Map *m, bool useOccupancy=false)
Definition: Map2DEnvironment.cpp:18
tDirection
tDirection
Definition: Map2DEnvironment.h:77
MapEnvironment::GetMaxHash
uint64_t GetMaxHash() const
Definition: Map2DEnvironment.cpp:529
MapEnvironment::GetGraphHeuristic
GraphHeuristic * GetGraphHeuristic()
Definition: Map2DEnvironment.cpp:49
MapEnvironment::h
GraphHeuristic * h
Definition: Map2DEnvironment.h:220
xyLoc::xyLoc
xyLoc(uint16_t _x, uint16_t _y)
Definition: Map2DEnvironment.h:40
MapEnvironment::DrawArrow
void DrawArrow(Graphics::Display &disp, const xyLoc &x, const xyLoc &y, double width=1.0) const
Definition: Map2DEnvironment.cpp:1445
MapEnvironment::HCost
virtual double HCost(const xyLoc &) const
Heuristic value between node and the stored goal.
Definition: Map2DEnvironment.h:154
MapEnvironment::GetSuccessors
virtual void GetSuccessors(const xyLoc &nodeID, std::vector< xyLoc > &neighbors) const
Definition: Map2DEnvironment.cpp:59
Graphics.h
Map::GetMapName
const char * GetMapName()
Definition: Map.cpp:981
kN
@ kN
Definition: Map2DEnvironment.h:78
xyLoc::operator<
bool operator<(const xyLoc &b)
Definition: Map2DEnvironment.h:43
MapEnvironment::GetStateHash
uint64_t GetStateHash(const xyLoc &node) const
Definition: Map2DEnvironment.cpp:534
EuclideanDistance::HCost
double HCost(const xyLoc &a, const xyLoc &b) const
Definition: Map2DEnvironment.h:124
MapEnvironment::GetActions
void GetActions(const xyLoc &nodeID, std::vector< tDirection > &actions) const
Definition: Map2DEnvironment.cpp:355
ReservationProvider.h
UnitSimulation
The basic simulation class for the world.
Definition: UnitSimulation.h:85
MapEnvironment::GLDrawLine
virtual void GLDrawLine(const xyLoc &x, const xyLoc &y) const
Definition: Map2DEnvironment.cpp:643
xyLocHash
Definition: Map2DEnvironment.h:53
std
Definition: CanonicalGraphEnvironment.h:26
MapEnvironment::DrawSingleTerrain
void DrawSingleTerrain(long terrain, Graphics::Display &disp, std::vector< bool > &drawn) const
Definition: Map2DEnvironment.cpp:1003
kS
@ kS
Definition: Map2DEnvironment.h:78
BaseMapOccupancyInterface::SetStateOccupied
virtual void SetStateOccupied(const xyLoc &, bool)
Sets the occupancy of a state.
Definition: Map2DEnvironment.cpp:1576
MapEnvironment::DrawLine
void DrawLine(Graphics::Display &disp, const xyLoc &x, const xyLoc &y, double width=1.0) const
Definition: Map2DEnvironment.cpp:1430
BitVector.h
MapEnvironment::GoalTest
bool GoalTest(const xyLoc &)
Definition: Map2DEnvironment.h:163
MapEnvironment::GetNextSuccessor
bool GetNextSuccessor(const xyLoc &currOpenNode, const xyLoc &goal, xyLoc &next, double &currHCost, uint64_t &special, bool &validMove)
Definition: Map2DEnvironment.cpp:92
kTerrainBorderLines
@ kTerrainBorderLines
Definition: Map2DEnvironment.h:33
MapEnvironment::DrawStateLabel
void DrawStateLabel(Graphics::Display &disp, const xyLoc &l1, const char *txt) const
Definition: Map2DEnvironment.cpp:1392
MapEnvironment::DIAGONAL_COST
double DIAGONAL_COST
Definition: Map2DEnvironment.h:223
Map.h
kNE
@ kNE
Definition: Map2DEnvironment.h:78
BaseMapOccupancyInterface::BaseMapOccupancyInterface
BaseMapOccupancyInterface(Map *m)
Constructor for the BaseMapOccupancyInterface.
Definition: Map2DEnvironment.cpp:1543
MapEnvironment::GetNextState
virtual void GetNextState(const xyLoc &currents, tDirection dir, xyLoc &news) const
Definition: Map2DEnvironment.cpp:1491
xyLoc::xyLoc
xyLoc()
Definition: Map2DEnvironment.h:39
MapEnvironment::GetNext8Successor
bool GetNext8Successor(const xyLoc &currOpenNode, const xyLoc &goal, xyLoc &next, double &currHCost, uint64_t &special, bool &validMove)
Definition: Map2DEnvironment.cpp:219
MapEnvironment::fourConnected
bool fourConnected
Definition: Map2DEnvironment.h:224
MapEnvironment::GetActionHash
uint64_t GetActionHash(tDirection act) const
Definition: Map2DEnvironment.cpp:547
kSW
@ kSW
Definition: Map2DEnvironment.h:79
SearchEnvironment
Definition: SearchEnvironment.h:30
operator<<
static std::ostream & operator<<(std::ostream &out, const xyLoc &loc)
Definition: Map2DEnvironment.h:62
BaseMapOccupancyInterface::~BaseMapOccupancyInterface
virtual ~BaseMapOccupancyInterface()
Destructor for the BaseMapOccupancyInterface.
Definition: Map2DEnvironment.cpp:1562
node
Nodes to be stored within a Graph.
Definition: Graph.h:170
MapEnvironment::GetAction
tDirection GetAction(const xyLoc &s1, const xyLoc &s2) const
Definition: Map2DEnvironment.cpp:392
MapEnvironment::GLLabelState
virtual void GLLabelState(const xyLoc &, const char *) const
Definition: Map2DEnvironment.cpp:709
Map
A tile-based representation of the world.
Definition: Map.h:142
SearchEnvironment.h
GraphHeuristic
Definition: GraphEnvironment.h:77
kNW
@ kNW
Definition: Map2DEnvironment.h:78
BaseMapOccupancyInterface::CanMove
virtual bool CanMove(const xyLoc &, const xyLoc &)
Definition: Map2DEnvironment.cpp:1635
GraphEnvironment.h
std::hash< xyLoc >::operator()
std::size_t operator()(const xyLoc &k) const
Definition: Map2DEnvironment.h:113
OccupancyInterface
Definition: OccupancyInterface.h:36
EuclideanDistance
Definition: Map2DEnvironment.h:122