Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Spacial abstractions of maps

The point of this document is not to completely explain spacial abstractions, but to give an overview of how they work. Technical reserach papers are available which give a more in-depth overview of the concepts involved. See:

http://www.cs.ualberta.ca/~nathanst/papers.html

That being said, map abstractions are used widely within the HOG environment. The mapAbstraction class contains the relevant functions for converting between map coordinates (getNodeFromMap) and extracting information about the abstractions available.

The function getAbstractGraph will return an abstract graph at any particular level of abstraction. At the lowest level of abstraction this is just a connectivity map of the underlying map, with each node in the graph corresponding to a tile on the Map, and each edge representing that a unit can travel directly from one tile (node) to another.

Each node has a set of labels describing the place of that node in the hierarcy of abstractions. Each label can either be accessed as a LONG value or a FLOATING POINT value. The labels are as follows:

kAbstractionLevel (LONG) The level of abstraction in the graph. Level 0 is the original map.

kNumAbstractedNodes (LONG) The number of nodes abstracted by a particular node. The node ID's of these nodes are stored in kFirstData (1...kNumAbstracted Nodes). At level 0 this value will always be 0.

kParent (LONG) The parent that abstracts this node in the next abstraction level of the graph.

kTemporaryLabel This label can be used temporarily by any

kXCoordinate (private cache) kYCoordinate (private cache) kZCoordinate (private cache) kNodeBlocked (currently unused - LONG) kNodeWidth (currently unused - LONG)

kFirstData (LONG) Other relevant data is stored here. At level 0 you can find the x/y coordinates of the underlying map location here. At other levels you find a list of children. Arbitrary data can be stored in successive ID's, although there is no guarantee it will be preserved if nodes are deleted out of the graph.

Prev: Simulations Next: Starting


Generated on Tue Aug 18 03:46:10 2009 for HOG by doxygen 1.3.4