public class SimpleVertexRouter extends AbstractRouter<Graph> implements VisitedVerticesAware
Graph
,
VertexRouter
graph, log
Constructor and Description |
---|
SimpleVertexRouter() |
Modifier and Type | Method and Description |
---|---|
protected double |
calcEdgeCost(int edgeIdx,
int fromEdgeIdx,
boolean isWrongWay,
boolean isTurnRestriced)
Liefert die Kosten einer Kante.
|
int[] |
getVisited()
Liefert eine Menge aller besuchten VertexIDs.
|
boolean |
isVisited(int vertexId)
Liefert true, wenn sich ein Vertex nach der Traversierung
in der BlackList (ClosedList) befindet, also besucht
oder erreicht wurde.
|
int[] |
makePath(int toTargetId)
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[] makePath(int toTargetId)
AbstractRouter
AbstractRouter.traverse(int, RouterConstraints, RouterParameters)
.makePath
in class AbstractRouter<Graph>
toTargetId
- 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
public final int[] getVisited()
VisitedVerticesAware
getVisited
in interface VisitedVerticesAware
public boolean isVisited(int vertexId)
AbstractRouter
isVisited
in class AbstractRouter<Graph>
vertexId
- int Id des Vertex >0.AbstractRouter.makePath(int)
,
AbstractRouter
protected double calcEdgeCost(int edgeIdx, int fromEdgeIdx, boolean isWrongWay, boolean isTurnRestriced)
edgeIdx
- int Index der Kante ueber die wir fahren.fromEdgeIdx
- int Index der Kante, von der wir kommen.isWrongWay
- true: Versuch, gegen die Einbahnstrasse zu fahrenisTurnRestriced
- true: Versuch, gegen Abbiegevorschrift zu fahren