HOG2
|
#include <RadiusAbstraction.h>
Public Member Functions | |
RadiusAbstraction (Map *, int) | |
~RadiusAbstraction () | |
MapAbstraction * | Clone (Map *_m) |
virtual bool | Pathable (node *from, node *to) |
virtual void | VerifyHierarchy () |
verify that the hierarchy is consistent More... | |
virtual void | RemoveNode (node *n) |
remove node from abstraction More... | |
virtual void | RemoveEdge (edge *e, unsigned int absLevel) |
remove edge from abstraction More... | |
virtual void | AddNode (node *n) |
add node to abstraction More... | |
virtual void | AddEdge (edge *e, unsigned int absLevel) |
add edge to abstraction More... | |
virtual void | RepairAbstraction () |
This must be called after any of the above add/remove operations. More... | |
Private Member Functions | |
void | buildAbstraction () |
void | buildNodeIntoParent (node *n, node *parent) |
void | abstractionBFS (node *which, node *parent, int depth) |
void | addEdges (Graph *g) |
void | addNodes (Graph *g) |
Private Attributes | |
int | radius |
Definition at line 17 of file RadiusAbstraction.h.
RadiusAbstraction::RadiusAbstraction | ( | Map * | _m, |
int | _radius | ||
) |
Definition at line 17 of file RadiusAbstraction.cpp.
References buildAbstraction().
Referenced by Clone().
RadiusAbstraction::~RadiusAbstraction | ( | ) |
Definition at line 25 of file RadiusAbstraction.cpp.
Definition at line 143 of file RadiusAbstraction.cpp.
References buildNodeIntoParent(), node::GetLabelL(), node::getNeighborIter(), GraphAbstractionConstants::kParent, and node::nodeNeighborNext().
Referenced by addNodes().
|
virtual |
add edge to abstraction
Definition at line 72 of file RadiusAbstraction.cpp.
|
private |
Definition at line 122 of file RadiusAbstraction.cpp.
References Graph::AddEdge(), Graph::edgeIterNext(), Graph::FindEdge(), Graph::getEdgeIter(), edge::GetLabelL(), node::GetLabelL(), Graph::GetNode(), GraphAbstractionConstants::kEdgeCapacity, GraphAbstractionConstants::kParent, and edge::SetLabelL().
Referenced by buildAbstraction().
|
virtual |
add node to abstraction
Definition at line 65 of file RadiusAbstraction.cpp.
|
private |
Definition at line 97 of file RadiusAbstraction.cpp.
References abstractionBFS(), Graph::AddNode(), node::GetLabelL(), GraphAbstractionConstants::kAbstractionLevel, GraphAbstractionConstants::kNodeBlocked, GraphAbstractionConstants::kNumAbstractedNodes, GraphAbstractionConstants::kParent, GraphAbstractionConstants::kUnknownPosition, GraphAbstractionConstants::kXCoordinate, radius, node::SetLabelF(), and node::SetLabelL().
Referenced by buildAbstraction().
|
private |
Definition at line 84 of file RadiusAbstraction.cpp.
References addEdges(), addNodes(), and GetMapGraph().
Referenced by RadiusAbstraction().
Definition at line 157 of file RadiusAbstraction.cpp.
References node::GetLabelL(), node::GetNum(), GraphAbstractionConstants::kFirstData, GraphAbstractionConstants::kNumAbstractedNodes, GraphAbstractionConstants::kParent, GraphAbstractionConstants::kUnknownPosition, GraphAbstractionConstants::kXCoordinate, node::SetLabelF(), and node::SetLabelL().
Referenced by abstractionBFS().
|
inline |
Definition at line 21 of file RadiusAbstraction.h.
References radius, and RadiusAbstraction().
Definition at line 29 of file RadiusAbstraction.cpp.
References node::GetLabelL(), GraphAbstractionConstants::kAbstractionLevel, and GraphAbstractionConstants::kParent.
|
virtual |
remove edge from abstraction
Definition at line 60 of file RadiusAbstraction.cpp.
|
virtual |
remove node from abstraction
Definition at line 55 of file RadiusAbstraction.cpp.
|
virtual |
This must be called after any of the above add/remove operations.
But the operations can be stacked followed by a single RepairAbstraction call.
Definition at line 80 of file RadiusAbstraction.cpp.
|
virtual |
verify that the hierarchy is consistent
Definition at line 49 of file RadiusAbstraction.cpp.
|
private |
Definition at line 49 of file RadiusAbstraction.h.
Referenced by addNodes(), and Clone().