geos::index::strtree::BoundablePair Class Reference

A pair of Boundables, whose leaf items support a distance metric between them. More...

`#include <BoundablePair.h>`

## Public Types

typedef std::priority_queue< BoundablePair *, std::vector< BoundablePair * >, BoundablePairQueueCompare > | BoundablePairQueue

## Public Member Functions

| BoundablePair (const Boundable *boundable1, const Boundable *boundable2, ItemDistance *itemDistance)
const Boundable * | getBoundable (int i) const
double | distance () const
| Computes the distance between the `Boundable`s in this pair. The boundables are either composites or leaves.
double | getDistance () const
| Gets the minimum possible distance between the Boundables in this pair.
bool | isLeaves () const
double | maximumDistance ()
| Computes the maximum distance between any two items in the pair of nodes.
void | expandToQueue (BoundablePairQueue &, double minDistance)
void | expand (const Boundable *bndComposite, const Boundable *bndOther, bool isFlipped, BoundablePairQueue &priQ, double minDistance)

## Static Public Member Functions

static bool | isComposite (const Boundable *item)
static double | area (const Boundable *b)

## Detailed Description

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.

Author
  Martin Davis

## Member Function Documentation

## distance()

double geos::index::strtree::BoundablePair::distance | ( |  | ) | const

Computes the distance between the `Boundable`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 by ItemDistance::distance(const ItemBoundable* item1, const ItemBoundable* item2).

Returns
  the distance between the items

## getBoundable()

const Boundable * geos::index::strtree::BoundablePair::getBoundable | ( | int | i | ) | const

Gets one of the member `Boundable`s in the pair (indexed by [0, 1]).

Parameters

  i | the index of the member to return (0 or 1)

Returns
  the chosen member

## getDistance()

double geos::index::strtree::BoundablePair::getDistance | ( |  | ) | const

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

## isLeaves()

bool geos::index::strtree::BoundablePair::isLeaves | ( |  | ) | const

Tests if both elements of the pair are leaf nodes

Returns
  true if both pair elements are leaf nodes

## maximumDistance()

double geos::index::strtree::BoundablePair::maximumDistance | ( |  | ) |

Computes the maximum distance between any two items in the pair of nodes.

Returns
  the maximum distance between items in the pair

The documentation for this class was generated from the following file:

- BoundablePair.h