Class IntervalRTree<T>

Object
RTree<T>
IntervalRTree<T>
Type Parameters:
T - object-type stored in structure (the payload).

public class IntervalRTree<T> extends RTree<T>
An R-Tree that contains items, each with an associated one-dimensional interval.

This is similar to BoundingBoxRTree but uses a single dimension rather than three-dimensions to index the data.

Author:
Owen Feehan
See Also:
  • Constructor Details

    • IntervalRTree

      public IntervalRTree()
      Creates an empty R-Tree.
    • IntervalRTree

      public IntervalRTree(int maxNumberEntries)
      Creates an empty R-Tree with a specified number of children.
      Parameters:
      maxNumberEntries - maximum number of entries in the r-tree
  • Method Details

    • add

      public void add(double min, double max, T payload)
      Adds a bounding-box with a corresponding index.

      Note that the payload must not be unique, and multiple identical elements can exist with the same bounding-box and payload.

      Parameters:
      min - the minimum of the interval (inclusive).
      max - the maximum of the interval (inclusive).
      payload - the payload associated with the interval.
    • contains

      public Set<T> contains(double point)
      Which objects contain a particular point?
      Parameters:
      point - the point
      Returns:
      payloads for all objects that contain point.
    • containsStream

      public Stream<T> containsStream(double point)
      Like contains(double) but returns a Stream instead of a Set.
      Parameters:
      point - the point
      Returns:
      payloads for all objects that contain point.
    • intersectsWith

      public Set<T> intersectsWith(double min, double max)
      Which bounding-boxes intersect with another specific bounding box?
      Parameters:
      min - the minimum of the interval (inclusive).
      max - the maximum of the interval (inclusive).
      Returns:
      payloads for all bounding-boxes that intersect with toIntersectWith.
    • intersectsWithStream

      public Stream<T> intersectsWithStream(double min, double max)
      Like intersectsWith(double, double) but returns a Stream instead of a Set.
      Parameters:
      min - the minimum of the interval (inclusive).
      max - the maximum of the interval (inclusive).
      Returns:
      payloads for all bounding-boxes that intersect with toIntersectWith.
    • remove

      public void remove(double min, double max, T payload)
      Removes a particular item from the r-tree, identified by its interval and payload.

      If no entry can be found matching exactly the box and payload, no change happens to the r-tree. No error is reported.

      If multiple entries exist that match exactly the box and payload, then all entries are removed.

      If box exists but with a different payload, behaviour is undefined. Either box is removed, or no change occurs.

      Parameters:
      min - the minimum of the interval (inclusive).
      max - the maximum of the interval (inclusive).
      payload - the payload