public class EdgeRouter extends AbstractRouter<Graph> implements VisitedVerticesAware
VertexRouter
,
VisitedVerticesAware
graph, log
Constructor and Description |
---|
EdgeRouter() |
Modifier and Type | Method and Description |
---|---|
protected double |
calcEdgeCost(int edgeIdx) |
protected double |
calcVertexCost(int vertexId)
Liefert die heuristischen Kosten eines Vertex.
|
int[] |
getVisited()
Liefert eine Menge aller besuchten VertexIDs.
|
boolean |
isVisited(int targetId)
Liefert true, wenn sich ein Vertex nach der Traversierung
in der BlackList (ClosedList) befindet, also besucht
oder erreicht wurde.
|
int[] |
makePath(int targetId)
Erstellt den Pfad nach erfolgreichem
AbstractRouter.traverse(int, RouterConstraints, RouterParameters) . |
boolean |
traverse(int sourceId,
RouterConstraints constraints,
RouterParameters params)
Traversiert den Graphen bis zur Abbruchbedingung oder komplett.
|
findFastestPath, findPath, findPath, findShortestPath, graphClassOf, init, newRouter, traverseFully
public boolean traverse(int sourceId, RouterConstraints constraints, RouterParameters params)
AbstractRouter
traverse
in class AbstractRouter<Graph>
sourceId
- Vertex Start Id (1-wertig)constraints
- RouterConstraints
Abbruchbedingung (NULLABLE).params
- RouterParameters
weitere Einstellungen (NULLABLE).RouterConstraints.targetIds
erreicht.AbstractRouter.makePath(int)
,
AbstractRouter.findPath(int, int, double, RouterParameters)
,
AbstractRouter
public final int[] getVisited()
VisitedVerticesAware
getVisited
in interface VisitedVerticesAware
protected double calcEdgeCost(int edgeIdx)
protected double calcVertexCost(int vertexId)
vertexId
- Id des Vertexpublic boolean isVisited(int targetId)
AbstractRouter
isVisited
in class AbstractRouter<Graph>
targetId
- int Id des Vertex >0.AbstractRouter.makePath(int)
,
AbstractRouter
public int[] makePath(int targetId)
AbstractRouter
AbstractRouter.traverse(int, RouterConstraints, RouterParameters)
.makePath
in class AbstractRouter<Graph>
targetId
- Id des ZielVertex. Dies muss nicht zwangslaeufig
der Ziel-Knoten sein. Es kann auch ein beliebiger Vertex aus
AbstractRouter.isVisited(int)
uebergeben werden, um so weitere Pfade zu finden.
Dies muss jedoch von der jeweiligen Implementation des Routers unterstuetzt werden.null
, wenn nicht gefunden.AbstractRouter