# geos::geom::Envelope Class Reference

An Envelope defines a rectangulare region of the 2D coordinate plane. More...

`#include <geos.h>`

List of all members.

## Public Types

typedef std::auto_ptr< Envelope > | AutoPtr

## Public Member Functions

| Envelope (void)
| Creates a null `Envelope`.
| Envelope (double x1, double x2, double y1, double y2)
| Creates an `Envelope` for a region defined by maximum and minimum values.
| Envelope (const Coordinate &p1, const Coordinate &p2)
| Creates an `Envelope` for a region defined by two Coordinates.
| Envelope (const Coordinate &p)
| Creates an Envelope for a region defined by a single Coordinate.
| Envelope (const Envelope &env)
| Copy constructor.
Envelope & | operator= (const Envelope &e)
| Assignment operator.
| Envelope (const std::string &str)
| Create an `Envelope` from an Envelope string representation produced by Envelope.toString()
void | init (void)
| Initialize to a null `Envelope`.
void | init (double x1, double x2, double y1, double y2)
| Initialize an `Envelope` for a region defined by maximum and minimum values.
void | init (const Coordinate &p1, const Coordinate &p2)
| Initialize an `Envelope` to a region defined by two Coordinates.
void | init (const Coordinate &p)
| Initialize an `Envelope` to a region defined by a single Coordinate.
void | setToNull (void)
| Makes this `Envelope` a "null" envelope, that is, the envelope of the empty geometry.
bool | isNull (void) const
| Returns `true` if this `Envelope` is a "null" envelope.
double | getWidth (void) const
| Returns the difference between the maximum and minimum x values.
double | getHeight (void) const
| Returns the difference between the maximum and minimum y values.
double | getArea () const
double | getMaxY () const
double | getMaxX () const
double | getMinY () const
double | getMinX () const
bool | centre (Coordinate &centre) const
bool | intersection (const Envelope &env, Envelope &result) const
void | translate (double transX, double transY)
| Translates this envelope by given amounts in the X and Y direction.
void | expandBy (double deltaX, double deltaY)
| Expands this envelope by a given distance in all directions. Both positive and negative distances are supported.
void | expandBy (double distance)
| Expands this envelope by a given distance in all directions. Both positive and negative distances are supported.
void | expandToInclude (const Coordinate &p)
| Enlarges the boundary of the Envelope so that it contains p. Does nothing if p is already on or within the boundaries.
void | expandToInclude (double x, double y)
| Enlarges the boundary of the Envelope so that it contains (x,y). Does nothing if (x,y) is already on or within the boundaries.
void | expandToInclude (const Envelope *other)
| Enlarges the boundary of the Envelope so that it contains `other`. Does nothing if other is wholly on or within the boundaries.
bool | contains (const Envelope &other) const
| Tests if the `Envelope other` lies wholely inside this `Envelope` (inclusive of the boundary).
bool | contains (const Envelope *other) const
bool | contains (const Coordinate &p) const
| Returns `true` if the given point lies in or on the envelope.
bool | contains (double x, double y) const
| Returns `true` if the given point lies in or on the envelope.
bool | intersects (const Coordinate &p) const
bool | intersects (double x, double y) const
bool | intersects (const Envelope *other) const
bool | intersects (const Envelope &other) const
bool | covers (double x, double y) const
bool | covers (const Coordinate *p) const
bool | covers (const Envelope &other) const
bool | covers (const Envelope *other) const
bool | equals (const Envelope *other) const
| Returns `true` if the `Envelope other` spatially equals this `Envelope`.
std::string | toString (void) const
| Returns a `string` of the form Env[minx:maxx,miny:maxy] .
double | distance (const Envelope *env) const
| Computes the distance between this and another `Envelope`.
int | hashCode () const

## Static Public Member Functions

static bool | intersects (const Coordinate &p1, const Coordinate &p2, const Coordinate &q)
| Test the point q to see whether it intersects the Envelope defined by p1-p2.
static bool | intersects (const Coordinate &p1, const Coordinate &p2, const Coordinate &q1, const Coordinate &q2)
| Test the envelope defined by p1-p2 for intersection with the envelope defined by q1-q2.

## Detailed Description

An Envelope defines a rectangulare region of the 2D coordinate plane.

It is often used to represent the bounding box of a Geometry, e.g. the minimum and maximum x and y values of the Coordinates.

Note that Envelopes support infinite or half-infinite regions, by using the values of `Double_POSITIVE_INFINITY` and `Double_NEGATIVE_INFINITY`.

When Envelope objects are created or initialized, the supplies extent values are automatically sorted into the correct order.

## Constructor & Destructor Documentation

geos::geom::Envelope::Envelope | ( | double | x1,
|  | double | x2,
|  | double | y1,
|  | double | y2
| ) |  |

Creates an `Envelope` for a region defined by maximum and minimum values.

Parameters:

  x1 | the first x-value
  x2 | the second x-value
  y1 | the first y-value
  y2 | the second y-value

geos::geom::Envelope::Envelope | ( | const Coordinate & | p1,
|  | const Coordinate & | p2
| ) |  |

Creates an `Envelope` for a region defined by two Coordinates.

Parameters:

  p1 | the first Coordinate
  p2 | the second Coordinate

geos::geom::Envelope::Envelope | ( | const Coordinate & | p ) |

Creates an Envelope for a region defined by a single Coordinate.

Parameters:

  p | the Coordinate

## Member Function Documentation

bool geos::geom::Envelope::centre | ( | Coordinate & | centre ) | const

Computes the coordinate of the centre of this envelope (as long as it is non-null)

Parameters:

  centre | The coordinate to write results into

Returns:
  NULL is the center could not be found (null envelope).

bool geos::geom::Envelope::contains | ( | const Envelope & | other ) | const`[inline]`

Tests if the `Envelope other` lies wholely inside this `Envelope` (inclusive of the boundary).

Note that this is not the same definition as the SFS `contains`, which would exclude the envelope boundary.

Parameters:

  other | the `Envelope` to check

Returns:
  true if `other` is contained in this `Envelope`

See also:
  covers(Envelope)

bool geos::geom::Envelope::contains | ( | const Coordinate & | p ) | const`[inline]`

Returns `true` if the given point lies in or on the envelope.

Parameters:

  p | the point which this `Envelope` is being checked for containing

Returns:
  `true` if the point lies in the interior or on the boundary of this `Envelope`.

References geos::geom::Coordinate::x, and geos::geom::Coordinate::y.

bool geos::geom::Envelope::contains | ( | double | x,
|  | double | y
| ) |  | const`[inline]`

Returns `true` if the given point lies in or on the envelope.

Parameters:

  x | the x-coordinate of the point which this `Envelope` is being checked for containing
  y | the y-coordinate of the point which this `Envelope` is being checked for containing

Returns:
  `true` if `(x, y)` lies in the interior or on the boundary of this `Envelope`.

bool geos::geom::Envelope::covers | ( | double | x,
|  | double | y
| ) |  | const

Tests if the given point lies in or on the envelope.

Parameters:

  x | the x-coordinate of the point which this `Envelope` is being checked for containing
  y | the y-coordinate of the point which this `Envelope` is being checked for containing

Returns:
  `true` if `(x, y)` lies in the interior or on the boundary of this `Envelope`.

bool geos::geom::Envelope::covers | ( | const Coordinate * | p ) | const

Tests if the given point lies in or on the envelope.

Parameters:

  p | the point which this `Envelope` is being checked for containing

Returns:
  `true` if the point lies in the interior or on the boundary of this `Envelope`.

bool geos::geom::Envelope::covers | ( | const Envelope & | other ) | const

Tests if the `Envelope other` lies wholely inside this `Envelope` (inclusive of the boundary).

Parameters:

  other | the `Envelope` to check

Returns:
  true if this `Envelope` covers the `other`

double geos::geom::Envelope::distance | ( | const Envelope * | env ) | const

Computes the distance between this and another `Envelope`.

The distance between overlapping Envelopes is 0. Otherwise, the distance is the Euclidean distance between the closest points.

bool geos::geom::Envelope::equals | ( | const Envelope * | other ) | const

Returns `true` if the `Envelope other` spatially equals this `Envelope`.

Parameters:

  other | the `Envelope` which this `Envelope` is being checked for equality

Returns:
  `true` if this and `other` Envelope objs are spatially equal

void geos::geom::Envelope::expandBy | ( | double | deltaX,
|  | double | deltaY
| ) |  |

Expands this envelope by a given distance in all directions. Both positive and negative distances are supported.

Parameters:

  deltaX | the distance to expand the envelope along the X axis
  deltaY | the distance to expand the envelope along the Y axis

void geos::geom::Envelope::expandBy | ( | double | distance ) | `[inline]`

Expands this envelope by a given distance in all directions. Both positive and negative distances are supported.

Parameters:

  distance | the distance to expand the envelope

Returns:
  this envelope

References expandBy().

Referenced by expandBy().

void geos::geom::Envelope::expandToInclude | ( | const Coordinate & | p ) |

Enlarges the boundary of the Envelope so that it contains p. Does nothing if p is already on or within the boundaries.

Parameters:

  p | the Coordinate to include

void geos::geom::Envelope::expandToInclude | ( | double | x,
|  | double | y
| ) |  |

Enlarges the boundary of the Envelope so that it contains (x,y). Does nothing if (x,y) is already on or within the boundaries.

Parameters:

  x | the value to lower the minimum x to or to raise the maximum x to
  y | the value to lower the minimum y to or to raise the maximum y to

void geos::geom::Envelope::expandToInclude | ( | const Envelope * | other ) |

Enlarges the boundary of the Envelope so that it contains `other`. Does nothing if other is wholly on or within the boundaries.

Parameters:

  other | the `Envelope` to merge with

double geos::geom::Envelope::getArea | ( | ) | const`[inline]`

Gets the area of this envelope.

Returns:
  the area of the envelope
  0.0 if the envelope is null

double geos::geom::Envelope::getHeight | ( | void | ) | const

Returns the difference between the maximum and minimum y values.

Returns:
  max y - min y, or 0 if this is a null Envelope

double geos::geom::Envelope::getMaxX | ( | ) | const

Returns the Envelope maximum x-value. min x > max x indicates that this is a null Envelope.

double geos::geom::Envelope::getMaxY | ( | ) | const

Returns the Envelope maximum y-value. min y > max y indicates that this is a null Envelope.

double geos::geom::Envelope::getMinX | ( | ) | const

Returns the Envelope minimum x-value. min x > max x indicates that this is a null Envelope.

double geos::geom::Envelope::getMinY | ( | ) | const

Returns the Envelope minimum y-value. min y > max y indicates that this is a null Envelope.

double geos::geom::Envelope::getWidth | ( | void | ) | const

Returns the difference between the maximum and minimum x values.

Returns:
  max x - min x, or 0 if this is a null Envelope

void geos::geom::Envelope::init | ( | double | x1,
|  | double | x2,
|  | double | y1,
|  | double | y2
| ) |  |

Initialize an `Envelope` for a region defined by maximum and minimum values.

Parameters:

  x1 | the first x-value
  x2 | the second x-value
  y1 | the first y-value
  y2 | the second y-value

void geos::geom::Envelope::init | ( | const Coordinate & | p1,
|  | const Coordinate & | p2
| ) |  |

Initialize an `Envelope` to a region defined by two Coordinates.

Parameters:

  p1 | the first Coordinate
  p2 | the second Coordinate

void geos::geom::Envelope::init | ( | const Coordinate & | p ) |

Initialize an `Envelope` to a region defined by a single Coordinate.

Parameters:

  p | the Coordinate

bool geos::geom::Envelope::intersection | ( | const Envelope & | env,
|  | Envelope & | result
| ) |  | const

Computes the intersection of two Envelopes

Parameters:

  env | the envelope to intersect with
  result | the envelope representing the intersection of the envelopes (this will be the null envelope if either argument is null, or they do not intersect)

Returns:
  false if not intersection is found

static bool geos::geom::Envelope::intersects | ( | const Coordinate & | p1,
|  | const Coordinate & | p2,
|  | const Coordinate & | q
| ) |  | `[static]`

Test the point q to see whether it intersects the Envelope defined by p1-p2.

Parameters:

  p1 | one extremal point of the envelope
  p2 | another extremal point of the envelope
  q | the point to test for intersection

Returns:
  `true` if q intersects the envelope p1-p2

bool geos::geom::Envelope::intersects | ( | const Envelope * | other ) | const

Check if the region defined by other Envelope intersects (intersects) the region of this Envelope.

Parameters:

  other | the Envelope which this Envelope is being checked for intersection

Returns:
  true if the Envelopes intersects

bool geos::geom::Envelope::intersects | ( | double | x,
|  | double | y
| ) |  | const

Check if the point (x, y) intersects (lies inside) the region of this Envelope.

Parameters:

  x | the x-ordinate of the point
  y | the y-ordinate of the point

Returns:
  `true` if the point intersects this Envelope

bool geos::geom::Envelope::intersects | ( | const Coordinate & | p ) | const

Check if the point p intersects (lies inside) the region of this Envelope.

Parameters:

  p | the Coordinate to be tested

Returns:
  true if the point intersects this Envelope

static bool geos::geom::Envelope::intersects | ( | const Coordinate & | p1,
|  | const Coordinate & | p2,
|  | const Coordinate & | q1,
|  | const Coordinate & | q2
| ) |  | `[static]`

Test the envelope defined by p1-p2 for intersection with the envelope defined by q1-q2.

Parameters:

  p1 | one extremal point of the envelope P
  p2 | another extremal point of the envelope P
  q1 | one extremal point of the envelope Q
  q2 | another extremal point of the envelope Q

Returns:
  `true` if Q intersects P

bool geos::geom::Envelope::isNull | ( | void | ) | const

Returns `true` if this `Envelope` is a "null" envelope.

Returns:
  `true` if this `Envelope` is uninitialized or is the envelope of the empty geometry.

std::string geos::geom::Envelope::toString | ( | void | ) | const

Returns a `string` of the form Env[minx:maxx,miny:maxy] .

Returns:
  a `string` of the form Env[minx:maxx,miny:maxy]

void geos::geom::Envelope::translate | ( | double | transX,
|  | double | transY
| ) |  |

Translates this envelope by given amounts in the X and Y direction.

Parameters:

  transX | the amount to translate along the X axis
  transY | the amount to translate along the Y axis

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

- Envelope.h