Class BoundablePair

java.lang.Object
org.locationtech.jts.index.strtree.BoundablePair
All Implemented Interfaces:
Comparable

class BoundablePair extends Object implements 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 Details

    • boundable1

      private Boundable boundable1
    • boundable2

      private Boundable boundable2
    • distance

      private double distance
    • itemDistance

      private ItemDistance itemDistance
  • Constructor Details

  • Method Details

    • getBoundable

      public Boundable getBoundable(int i)
      Gets one of the member Boundables 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 the Boundables 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

      public int compareTo(Object o)
      Compares two pairs based on their minimum distances
      Specified by:
      compareTo in interface Comparable
    • isLeaves

      public boolean isLeaves()
      Tests if both elements of the pair are leaf nodes
      Returns:
      true if both pair elements are leaf nodes
    • isComposite

      public static boolean isComposite(Object item)
    • area

      private static double area(Boundable b)
    • expandToQueue

      public void expandToQueue(PriorityQueue priQ, double minDistance)
      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)