Class BoundablePair
java.lang.Object
org.locationtech.jts.index.strtree.BoundablePair
- All Implemented Interfaces:
Comparable
A pair of
Boundables, whose leaf items
support a distance metric between them.
Used to compute the distance between the members,
and to expand a member relative to the other
in order to produce new branches of the
Branch-and-Bound evaluation tree.
Provides an ordering based on the distance between the members,
which allows building a priority queue by minimum distance.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Boundableprivate Boundableprivate doubleprivate ItemDistance -
Constructor Summary
ConstructorsConstructorDescriptionBoundablePair(Boundable boundable1, Boundable boundable2, ItemDistance itemDistance) -
Method Summary
Modifier and TypeMethodDescriptionprivate static doubleintCompares two pairs based on their minimum distancesprivate doubledistance()Computes the distance between theBoundables in this pair.private voidexpand(Boundable bndComposite, Boundable bndOther, PriorityQueue priQ, double minDistance) voidexpandToQueue(PriorityQueue priQ, double minDistance) For a pair which is not a leaf (i.e.getBoundable(int i) Gets one of the memberBoundables in the pair (indexed by [0, 1]).doubleGets the minimum possible distance between the Boundables in this pair.static booleanisComposite(Object item) booleanisLeaves()Tests if both elements of the pair are leaf nodes
-
Field Details
-
boundable1
-
boundable2
-
distance
private double distance -
itemDistance
-
-
Constructor Details
-
BoundablePair
-
-
Method Details
-
getBoundable
Gets one of the memberBoundables in the pair (indexed by [0, 1]).- Parameters:
i- the index of the member to return (0 or 1)- Returns:
- the chosen member
-
distance
private double distance()Computes the distance between theBoundables in this pair. The boundables are either composites or leaves. If either is composite, the distance is computed as the minimum distance between the bounds. If both are leaves, the distance is computed by.invalid reference
#itemDistance(ItemBoundable, ItemBoundable)- Returns:
-
getDistance
public double getDistance()Gets the minimum possible distance between the Boundables in this pair. If the members are both items, this will be the exact distance between them. Otherwise, this distance will be a lower bound on the distances between the items in the members.- Returns:
- the exact or lower bound distance for this pair
-
compareTo
Compares two pairs based on their minimum distances- Specified by:
compareToin interfaceComparable
-
isLeaves
public boolean isLeaves()Tests if both elements of the pair are leaf nodes- Returns:
- true if both pair elements are leaf nodes
-
isComposite
-
area
-
expandToQueue
For a pair which is not a leaf (i.e. has at least one composite boundable) computes a list of new pairs from the expansion of the larger boundable. -
expand
private void expand(Boundable bndComposite, Boundable bndOther, PriorityQueue priQ, double minDistance)
-