HOG2
|
#include <IRDijkstra.h>
Public Member Functions | |
IRDijkstra () | |
virtual | ~IRDijkstra () |
virtual const char * | GetName () |
virtual path * | GetPath (GraphAbstraction *aMap, node *from, node *to, reservationProvider *rp=0) |
path * | DoOneSearchStep () |
bool | InitializeSearch (GraphAbstraction *aMap, node *from, node *to) |
void | OpenGLDraw () const |
int | GetNodesRefined () |
Public Member Functions inherited from SearchAlgorithm | |
SearchAlgorithm () | |
virtual | ~SearchAlgorithm () |
uint64_t | GetNodesExpanded () |
uint64_t | GetNodesTouched () |
virtual void | LogFinalStats (StatCollection *) |
Private Member Functions | |
node * | FindTopLevelNode (node *one, node *two, GraphAbstraction *aMap) |
void | SetInitialValues (node *gNewNode, node *aRealNode, node *gParent) |
void | RefineNode (node *gNode) |
node * | GetRealNode (node *gNode) const |
bool | ShouldAddEdge (node *aLowerNode, node *aHigherNode) |
void | GetAllSolutionNodes (node *goal, std::vector< node * > &nodes) |
void | ExpandNeighbors (node *gNode) |
path * | ExtractAndRefinePath () |
path * | GetSolution (node *gNode) |
Private Attributes | |
IRDijkstraConstants::PQueue | q |
IRDijkstraConstants::NodeLookupTable | closedList |
node * | aStart |
node * | aGoal |
node * | gStart |
node * | gGoal |
GraphAbstraction * | absGraph |
Graph * | g |
int | nodesRefined |
bool | done |
Additional Inherited Members | |
Public Attributes inherited from SearchAlgorithm | |
uint32_t | nodesExpanded |
uint32_t | nodesTouched |
Definition at line 68 of file IRDijkstra.h.
IRDijkstra::IRDijkstra | ( | ) |
Definition at line 15 of file IRDijkstra.cpp.
References g.
|
virtual |
Definition at line 21 of file IRDijkstra.cpp.
path * IRDijkstra::DoOneSearchStep | ( | ) |
Definition at line 43 of file IRDijkstra.cpp.
References OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::Add(), closedList, done, ExpandNeighbors(), ExtractAndRefinePath(), fequal(), node::GetLabelF(), node::GetNum(), gGoal, CFOptimalRefinementConstants::kGCost, IRDijkstraConstants::GNode::n, SearchAlgorithm::nodesExpanded, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::pop(), q, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::reset(), OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::size(), and OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::top().
Referenced by GetPath().
|
private |
Definition at line 164 of file IRDijkstra.cpp.
References OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::Add(), closedList, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::DecreaseKey(), fless(), g, node::GetLabelF(), node::getNeighborIter(), Graph::GetNode(), node::GetNum(), OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::IsIn(), CFOptimalRefinementConstants::kGCost, node::nodeNeighborNext(), SearchAlgorithm::nodesTouched, q, and node::SetLabelF().
Referenced by DoOneSearchStep().
|
private |
Definition at line 190 of file IRDijkstra.cpp.
References OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::Add(), closedList, done, GetAllSolutionNodes(), GetSolution(), gGoal, gStart, GraphAbstractionConstants::kAbstractionLevel, path::next, q, RefineNode(), and OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::reset().
Referenced by DoOneSearchStep().
|
private |
Definition at line 113 of file IRDijkstra.cpp.
References GraphAbstraction::GetAbstractionLevel(), GraphAbstraction::getNumAbstractGraphs(), and GraphAbstraction::GetParent().
Referenced by InitializeSearch().
Definition at line 223 of file IRDijkstra.cpp.
References closedList, fgreater(), g, node::GetLabelF(), node::getNeighborIter(), Graph::GetNode(), node::GetNum(), CFOptimalRefinementConstants::kGCost, and node::nodeNeighborNext().
Referenced by ExtractAndRefinePath().
|
virtual |
Implements SearchAlgorithm.
Definition at line 25 of file IRDijkstra.cpp.
|
inline |
Definition at line 77 of file IRDijkstra.h.
References nodesRefined.
|
virtual |
Implements SearchAlgorithm.
Definition at line 30 of file IRDijkstra.cpp.
References DoOneSearchStep(), and InitializeSearch().
Definition at line 452 of file IRDijkstra.cpp.
References absGraph, GraphAbstraction::GetAbstractGraph(), node::GetLabelL(), Graph::GetNode(), GraphAbstractionConstants::kAbstractionLevel, and CFOptimalRefinementConstants::kCorrespondingNode.
Referenced by OpenGLDraw(), and RefineNode().
Definition at line 251 of file IRDijkstra.cpp.
References closedList, fequal(), g, node::GetLabelF(), node::getNeighborIter(), Graph::GetNode(), node::GetNum(), CFOptimalRefinementConstants::kGCost, node::nodeNeighborNext(), and path.
Referenced by ExtractAndRefinePath().
bool IRDijkstra::InitializeSearch | ( | GraphAbstraction * | aMap, |
node * | from, | ||
node * | to | ||
) |
Definition at line 88 of file IRDijkstra.cpp.
References absGraph, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::Add(), Graph::AddNode(), aGoal, aStart, closedList, FindTopLevelNode(), g, gGoal, gStart, SearchAlgorithm::nodesExpanded, nodesRefined, SearchAlgorithm::nodesTouched, q, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::reset(), and SetInitialValues().
Referenced by GetPath().
void IRDijkstra::OpenGLDraw | ( | ) | const |
Definition at line 469 of file IRDijkstra.cpp.
References absGraph, closedList, Graph::edgeIterNext(), g, Graph::getEdgeIter(), Graph::GetNode(), GraphAbstraction::GetNodeLoc(), node::GetNum(), Graph::GetNumNodes(), GetRealNode(), gGoal, gStart, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::IsIn(), IRDijkstraConstants::GNode::n, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::peek(), q, recVec::x, recVec::y, and recVec::z.
|
private |
Definition at line 373 of file IRDijkstra.cpp.
References absGraph, OpenClosedList< OBJ, HashKey, EqKey, CmpKey >::Add(), Graph::AddEdge(), Graph::AddNode(), Graph::findDirectedEdge(), Graph::FindEdge(), g, GraphAbstraction::GetAbstractGraph(), GraphAbstraction::GetAbstractionLevel(), node::GetLabelL(), node::getNeighborIter(), Graph::GetNode(), GraphAbstraction::GetNthChild(), node::GetNum(), GraphAbstraction::GetNumChildren(), GetRealNode(), GraphAbstractionConstants::kAbstractionLevel, node::nodeNeighborNext(), nodesRefined, q, Graph::RemoveNode(), SetInitialValues(), and ShouldAddEdge().
Referenced by ExtractAndRefinePath().
Definition at line 136 of file IRDijkstra.cpp.
References absGraph, aGoal, aStart, GraphAbstraction::GetAbstractionLevel(), node::GetLabelF(), node::GetNum(), gGoal, gStart, GraphAbstraction::IsParentOf(), GraphAbstractionConstants::kAbstractionLevel, CFOptimalRefinementConstants::kCorrespondingNode, CFOptimalRefinementConstants::kGCost, node::SetLabelF(), and node::SetLabelL().
Referenced by InitializeSearch(), and RefineNode().
Definition at line 457 of file IRDijkstra.cpp.
References absGraph, GraphAbstraction::GetAbstractGraph(), GraphAbstraction::GetAbstractionLevel(), node::getNeighborIter(), Graph::GetNode(), GraphAbstraction::IsParentOf(), and node::nodeNeighborNext().
Referenced by RefineNode().
|
private |
Definition at line 100 of file IRDijkstra.h.
Referenced by GetRealNode(), InitializeSearch(), OpenGLDraw(), RefineNode(), SetInitialValues(), and ShouldAddEdge().
|
private |
Definition at line 98 of file IRDijkstra.h.
Referenced by InitializeSearch(), and SetInitialValues().
|
private |
Definition at line 98 of file IRDijkstra.h.
Referenced by InitializeSearch(), and SetInitialValues().
|
private |
Definition at line 97 of file IRDijkstra.h.
Referenced by DoOneSearchStep(), ExpandNeighbors(), ExtractAndRefinePath(), GetAllSolutionNodes(), GetSolution(), InitializeSearch(), and OpenGLDraw().
|
private |
Definition at line 103 of file IRDijkstra.h.
Referenced by DoOneSearchStep(), and ExtractAndRefinePath().
|
private |
Definition at line 101 of file IRDijkstra.h.
Referenced by ExpandNeighbors(), GetAllSolutionNodes(), GetSolution(), InitializeSearch(), IRDijkstra(), OpenGLDraw(), and RefineNode().
|
private |
Definition at line 99 of file IRDijkstra.h.
Referenced by DoOneSearchStep(), ExtractAndRefinePath(), InitializeSearch(), OpenGLDraw(), and SetInitialValues().
|
private |
Definition at line 99 of file IRDijkstra.h.
Referenced by ExtractAndRefinePath(), InitializeSearch(), OpenGLDraw(), and SetInitialValues().
|
private |
Definition at line 102 of file IRDijkstra.h.
Referenced by GetNodesRefined(), InitializeSearch(), and RefineNode().
|
private |
Definition at line 96 of file IRDijkstra.h.
Referenced by DoOneSearchStep(), ExpandNeighbors(), ExtractAndRefinePath(), InitializeSearch(), OpenGLDraw(), and RefineNode().