Package com.luciad.network.function
Class ALcdNodeDistanceFunction<N,E>
java.lang.Object
com.luciad.network.function.ALcdNodeDistanceFunction<N,E>
- All Implemented Interfaces:
ILcdDistanceFunction<N,
E>
public abstract class ALcdNodeDistanceFunction<N,E>
extends Object
implements ILcdDistanceFunction<N,E>
ALcdNodeDistanceFunction
is an abstract class which can be used to implement
distance functions that take only nodes into account, not edges preceding or succeeding the
start- and/or endpoint.- Since:
- 5.1
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal double
computeDistance
(ILcdGraph<N, E> aGraph, ILcdRoute<N, E> aPrecedingRoute, ILcdRoute<N, E> aSucceedingRoute, TLcdTraversalDirection aTraversalDirection) Returns the distance between the end node ofaPrecedingRoute
and the start node ofaSucceedingRoute
.abstract double
computeDistance
(ILcdGraph<N, E> aGraph, N aStartNode, N aEndNode, TLcdTraversalDirection aTraversalDirection) Returns the distance between the two given nodes.final int
getOrder()
Returns the order of this function.
-
Constructor Details
-
ALcdNodeDistanceFunction
public ALcdNodeDistanceFunction()Constructs a newALcdNodeDistanceFunction
.
-
-
Method Details
-
computeDistance
public final double computeDistance(ILcdGraph<N, E> aGraph, ILcdRoute<N, E> aPrecedingRoute, ILcdRoute<N, E> aSucceedingRoute, TLcdTraversalDirection aTraversalDirection) Description copied from interface:ILcdDistanceFunction
Returns the distance between the end node ofaPrecedingRoute
and the start node ofaSucceedingRoute
.- Specified by:
computeDistance
in interfaceILcdDistanceFunction<N,
E> - Parameters:
aPrecedingRoute
- the route whose end node is the first of the two nodes between which a distance is to be calculated. Only the lastn
edges of this route will have an influence on the result, wheren
is equal to the order of this distance function. The route should be completely contained in the given graph, otherwise the correct behavior of this method is not guaranteed.aSucceedingRoute
- the route whose start node is the second of the two nodes between which a distance is to be calculated. Only the firstn
edges of this route will have an influence on the result, wheren
is equal to the order of this distance function. The route should be completely contained in the given graph, otherwise the correct behavior of this method is not guaranteed.aTraversalDirection
- indicating whether the traversal direction should be forward or backward. IfBACKWARD
, the given routes will be traversed in opposite direction, and the preceding route becomes thus the succeeding route and vice versa.- Returns:
- a
double
indicating the distance between the end node ofaPrecedingRoute
and the start node ofaSucceedingRoute
.
-
getOrder
public final int getOrder()Description copied from interface:ILcdDistanceFunction
Returns the order of this function. The order of a distance function is the maximum number of edges preceding the start node or succeeding the end node, that are taken into account when calculating a distance. E.g. a simple cartesian distance function has order 0, because it doesn't use any other information than the distance between the endpoint of the preceding route and the start node of the succeeding route. Other, more complex functions can have a higher order.- Specified by:
getOrder
in interfaceILcdDistanceFunction<N,
E> - Returns:
- the order of this function.
-
computeDistance
public abstract double computeDistance(ILcdGraph<N, E> aGraph, N aStartNode, N aEndNode, TLcdTraversalDirection aTraversalDirection) Returns the distance between the two given nodes.- Parameters:
aGraph
- the graph in which the two nodes are contained.aStartNode
- the first node.aEndNode
- the second node.- Returns:
- the distance from
aStartNode
toaEndNode
. - Throws:
IllegalArgumentException
- One or both of the nodes is/are not part of the given graph.NullPointerException
- one of the arguments isnull
.
-