GEOS 3.3.4

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Static Public Member Functions | List of all members
geos::geom::Envelope Class Reference

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

`#include <geos.h>`

## 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

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::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

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 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::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