geos::Envelope Class Reference

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

#include <geos.h>

List of all members.

Public Member Functions

 Envelope (void)
 Envelope (double x1, double x2, double y1, double y2)
 Envelope (const Coordinate &p1, const Coordinate &p2)
 Envelope (const Coordinate &p)
 Envelope (const Envelope &env)
virtual ~Envelope (void)
 Default destructor.
void init (void)
void init (double x1, double x2, double y1, double y2)
void init (const Coordinate &p1, const Coordinate &p2)
void init (const Coordinate &p)
void init (Envelope env)
void setToNull (void)
bool isNull (void) const
double getWidth (void) const
double getHeight (void) const
double getMaxY () const
double getMaxX () const
double getMinY () const
double getMinX () const
void expandToInclude (const Coordinate &p)
void expandToInclude (double x, double y)
void expandToInclude (const Envelope *other)
bool contains (const Coordinate &p) const
bool contains (double x, double y) const
bool contains (const Envelope *other) const
bool overlaps (const Coordinate &p) const
bool overlaps (double x, double y) const
bool overlaps (const Envelope *other) const
bool intersects (const Coordinate &p) const
bool intersects (double x, double y) const
bool intersects (const Envelope *other) const
string toString (void) const
double distance (const Envelope *env) const

Static Public Member Functions

static bool intersects (const Coordinate &p1, const Coordinate &p2, const Coordinate &q)
static bool intersects (const Coordinate &p1, const Coordinate &p2, const Coordinate &q1, const Coordinate &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::Envelope::Envelope ( void   ) 

Creates a null Envelope.

geos::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::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::Envelope::Envelope ( const Coordinate p  ) 

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

Parameters:
p the Coordinate

geos::Envelope::Envelope ( const Envelope env  ) 

Create an Envelope from an existing Envelope.

Parameters:
env the Envelope to initialize from


Member Function Documentation

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

void geos::Envelope::init ( void   ) 

Initialize to a null Envelope.

void geos::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::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::Envelope::init ( const Coordinate p  ) 

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

Parameters:
p the Coordinate

void geos::Envelope::init ( Envelope  env  ) 

Initialize an Envelope from an existing Envelope.

Parameters:
env the Envelope to initialize from

void geos::Envelope::setToNull ( void   ) 

Makes this Envelope a "null" envelope, that is, the envelope of the empty geometry.

bool geos::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.

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

double geos::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::Envelope::getMaxY (  )  const

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

Returns:
the maximum y-coordinate

double geos::Envelope::getMaxX (  )  const

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

Returns:
the maximum x-coordinate

double geos::Envelope::getMinY (  )  const

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

Returns:
the minimum y-coordinate

double geos::Envelope::getMinX (  )  const

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

Returns:
the minimum x-coordinate

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

bool geos::Envelope::contains ( const Coordinate p  )  const

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::Envelope::contains ( double  x,
double  y 
) const

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::Envelope::contains ( const Envelope other  )  const

Returns true if the Envelope other lies wholely inside this Envelope (inclusive of the boundary).

Parameters:
other the Envelope which this Envelope is being checked for containing
Returns:
true if other is contained in this Envelope

bool geos::Envelope::overlaps ( const Coordinate p  )  const

Deprecated:
Use intersects instead.

bool geos::Envelope::overlaps ( double  x,
double  y 
) const

Deprecated:
Use intersects instead.

bool geos::Envelope::overlaps ( const Envelope other  )  const

Deprecated:
Use intersects instead. In the future, overlaps may be changed to be a true overlap check; that is, whether the intersection is two-dimensional.

bool geos::Envelope::intersects ( const Coordinate other  )  const

Check if the point other overlaps (lies inside) the region of this Envelope.

Parameters:
other the Coordinate to be tested
Returns:
true if the point overlaps this Envelope

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

Check if the point (x, y) overlaps (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 overlaps this Envelope

bool geos::Envelope::intersects ( const Envelope other  )  const

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

Parameters:
other the Envelope which this Envelope is being checked for overlapping
Returns:
true if the Envelopes overlap

string geos::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]

double geos::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.


The documentation for this class was generated from the following files:
Generated on Sat Apr 12 12:58:43 2008 for GEOS by  doxygen 1.5.4