Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

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

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.
Envelopeoperator= (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 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::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.

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

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

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

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

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

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 const Coordinate p  ) 
 

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

Parameters:
p the Coordinate

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

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

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

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::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:
Generated on Thu Jun 11 06:17:02 2009 for GEOS by  doxygen 1.4.4