Class BoundablePair
java.lang.Object
org.locationtech.jts.index.strtree.BoundablePair
- All Implemented Interfaces:
Comparable
A pair of
Boundable
s, 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 Boundable
private Boundable
private double
private ItemDistance
-
Constructor Summary
ConstructorsConstructorDescriptionBoundablePair
(Boundable boundable1, Boundable boundable2, ItemDistance itemDistance) -
Method Summary
Modifier and TypeMethodDescriptionprivate static double
int
Compares two pairs based on their minimum distancesprivate double
distance()
Computes the distance between theBoundable
s in this pair.private void
expand
(Boundable bndComposite, Boundable bndOther, PriorityQueue priQ, double minDistance) void
expandToQueue
(PriorityQueue priQ, double minDistance) For a pair which is not a leaf (i.e.getBoundable
(int i) Gets one of the memberBoundable
s in the pair (indexed by [0, 1]).double
Gets the minimum possible distance between the Boundables in this pair.static boolean
isComposite
(Object item) boolean
isLeaves()
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 memberBoundable
s 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 theBoundable
s 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 byinvalid 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:
compareTo
in 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)
-