GEOS 3.3.8

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

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
geos::geom::Polygon Class Reference

Represents a linear polygon, which may include holes. More...

`#include <geos.h>`

Inheritance diagram for geos::geom::Polygon:

## Public Types
typedef std::vector< const Polygon * > | ConstVect
| A vector of const Polygon pointers.
Public Types inherited from geos::geom::Geometry
typedef std::vector< const Geometry * > | ConstVect
| A vector of const Geometry pointers.
typedef std::vector< Geometry * > | NonConstVect
| A vector of non-const Geometry pointers.
typedef std::auto_ptr< Geometry > | AutoPtr
| An auto_ptr of Geometry.

## Public Member Functions
virtual Geometry * | clone () const
CoordinateSequence * | getCoordinates () const
| Returns this Geometry vertices. Caller takes ownership of the returned object.
size_t | getNumPoints () const
| Returns the count of this Geometrys vertices.
Dimension::DimensionType | getDimension () const
| Returns surface dimension (2)
virtual int | getCoordinateDimension () const
| Returns coordinate dimension.
int | getBoundaryDimension () const
| Returns 1 (Polygon boundary is a MultiLineString)
Geometry * | getBoundary () const
| Computes the boundary of this geometry.
bool | isEmpty () const
| Returns whether or not the set of points in this Geometry is empty.
bool | isSimple () const
| Tests if a valid polygon is simple. This method always returns true, since a valid polygon is always simple.
const LineString * | getExteriorRing () const
| Returns the exterior ring (shell)
size_t | getNumInteriorRing () const
| Returns number of interior rings (hole)
const LineString * | getInteriorRingN (std::size_t n) const
| Get nth interior ring (hole)
std::string | getGeometryType () const
| Return a string representation of this Geometry type.
virtual GeometryTypeId | getGeometryTypeId () const
| Return an integer representation of this Geometry type.
bool | equalsExact (const Geometry *other, double tolerance=0) const
| Returns true if the two Geometrys are exactly equal, up to a specified tolerance.
void | apply_rw (const CoordinateFilter *filter)
void | apply_ro (CoordinateFilter *filter) const
void | apply_rw (GeometryFilter *filter)
void | apply_ro (GeometryFilter *filter) const
void | apply_rw (CoordinateSequenceFilter &filter)
void | apply_ro (CoordinateSequenceFilter &filter) const
Geometry * | convexHull () const
| Returns the smallest convex Polygon that contains all the points in the Geometry.
void | normalize ()
| Converts this Geometry to normal form (or canonical form).
int | compareToSameClass (const Geometry *p) const
const Coordinate * | getCoordinate () const
| Returns a vertex of this Geometry, or NULL if this is the empty geometry.
double | getArea () const
| Returns the area of this Geometry.
double | getLength () const
| Returns the perimeter of this `Polygon`
void | apply_rw (GeometryComponentFilter *filter)
void | apply_ro (GeometryComponentFilter *filter) const
bool | isRectangle () const
| Polygon overrides to check for actual rectangle.
Public Member Functions inherited from geos::geom::Geometry
virtual | ~Geometry ()
| Destroy Geometry and all components.
const GeometryFactory * | getFactory () const
| Gets the factory which contains the context in which this geometry was created.
void | setUserData (void *newUserData)
| A simple scheme for applications to add their own custom data to a Geometry. An example use might be to add an object representing a Coordinate Reference System.
void * | getUserData ()
| Gets the user data object for this geometry, if any.
virtual int | getSRID () const
virtual void | setSRID (int newSRID)
const PrecisionModel * | getPrecisionModel () const
| Get the PrecisionModel used to create this Geometry.
virtual std::size_t | getNumGeometries () const
virtual const Geometry * | getGeometryN (std::size_t) const
virtual bool | isValid () const
| Tests the validity of this `Geometry`.
virtual Geometry * | getEnvelope () const
| Returns this Geometrys bounding box.
virtual const Envelope * | getEnvelopeInternal () const
| Returns the minimum and maximum x and y values in this Geometry, or a null Envelope if this Geometry is empty.
virtual bool | disjoint (const Geometry *other) const
virtual bool | touches (const Geometry *other) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is FT*******, F**T***** or F***T****.
virtual bool | intersects (const Geometry *g) const
| Returns true if disjoint returns false.
virtual bool | crosses (const Geometry *g) const
virtual bool | within (const Geometry *g) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***.
virtual bool | contains (const Geometry *g) const
| Returns true if other.within(this) returns true.
virtual bool | overlaps (const Geometry *g) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves).
virtual bool | relate (const Geometry *g, const std::string &intersectionPattern) const
| Returns true if the elements in the DE-9IM intersection matrix for the two Geometrys match the elements in intersectionPattern.
bool | relate (const Geometry &g, const std::string &intersectionPattern) const
virtual IntersectionMatrix * | relate (const Geometry *g) const
| Returns the DE-9IM intersection matrix for the two Geometrys.
IntersectionMatrix * | relate (const Geometry &g) const
virtual bool | equals (const Geometry *g) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*.
bool | covers (const Geometry *g) const
| Returns `true` if this geometry covers the specified geometry.
bool | coveredBy (const Geometry *g) const
| Tests whether this geometry is covered by the specified geometry.
virtual std::string | toString () const
| Returns the Well-known Text representation of this Geometry.
virtual std::string | toText () const
virtual Geometry * | buffer (double distance) const
| Returns a buffer region around this Geometry having the given width.
virtual Geometry * | buffer (double distance, int quadrantSegments) const
| Returns a buffer region around this Geometry having the given width and with a specified number of segments used to approximate curves.
virtual Geometry * | buffer (double distance, int quadrantSegments, int endCapStyle) const
| Computes a buffer area around this geometry having the given width and with a specified accuracy of approximation for circular arcs, and using a specified end cap style.
virtual Geometry * | intersection (const Geometry *other) const
| Returns a Geometry representing the points shared by this Geometry and other.
Geometry * | Union (const Geometry *other) const
| Returns a Geometry representing all the points in this Geometry and other.
AutoPtr | Union () const
virtual Geometry * | difference (const Geometry *other) const
| Returns a Geometry representing the points making up this Geometry that do not make up other.
virtual Geometry * | symDifference (const Geometry *other) const
| Returns a set combining the points in this Geometry not in other, and the points in other not in this Geometry.
template<class T >
void | applyComponentFilter (T &f) const
| Apply a fiter to each component of this geometry. The filter is expected to provide a .filter(const Geometry*) method.
virtual int | compareTo (const Geometry *geom) const
virtual double | distance (const Geometry *g) const
| Returns the minimum distance between this Geometry and the Geometry g.
virtual bool | isWithinDistance (const Geometry *geom, double cDistance) const
| Tests whether the distance from this Geometry to another is less than or equal to a specified value.
virtual Point * | getCentroid () const
| Computes the centroid of this `Geometry`.
virtual bool | getCentroid (Coordinate &ret) const
| Computes the centroid of this Geometry as a Coordinate.
virtual Point * | getInteriorPoint () const
| Computes an interior point of this `Geometry`.
virtual void | geometryChanged ()
void | geometryChangedAction ()
| Notifies this Geometry that its Coordinates have been changed by an external party.

## Protected Member Functions
| Polygon (const Polygon &p)
| Polygon (LinearRing *newShell, std::vector< Geometry * > *newHoles, const GeometryFactory *newFactory)
Envelope::AutoPtr | computeEnvelopeInternal () const
Protected Member Functions inherited from geos::geom::Geometry
virtual bool | isEquivalentClass (const Geometry *other) const
| Returns whether the two Geometrys are equal, from the point of view of the equalsExact method.
int | compare (std::vector< Coordinate > a, std::vector< Coordinate > b) const
int | compare (std::vector< Geometry * > a, std::vector< Geometry * > b) const
bool | equal (const Coordinate &a, const Coordinate &b, double tolerance) const
| Geometry (const Geometry &geom)
| Polygon overrides to check for actual rectangle.
| Geometry (const GeometryFactory *factory)
| Construct a geometry with the given GeometryFactory.

## Protected Attributes
LinearRing * | shell
std::vector< Geometry * > * | holes
Protected Attributes inherited from geos::geom::Geometry
std::auto_ptr< Envelope > | envelope
| The bounding box of this Geometry.
int | SRID

## Friends
class | GeometryFactory

## Additional Inherited Members
Static Protected Member Functions inherited from geos::geom::Geometry
static bool | hasNonEmptyElements (const std::vector< Geometry * > *geometries)
| Returns true if the array contains any non-empty Geometrys.
static bool | hasNullElements (const CoordinateSequence *list)
| Returns true if the CoordinateSequence contains any null elements.
static bool | hasNullElements (const std::vector< Geometry * > *lrs)
| Returns true if the vector contains any null elements.
static void | checkNotGeometryCollection (const Geometry *g)

## Detailed Description

Represents a linear polygon, which may include holes.

The shell and holes of the polygon are represented by LinearRings. In a valid polygon, holes may touch the shell or other holes at a single point. However, no sequence of touching holes may split the polygon into two pieces. The orientation of the rings in the polygon does not matter.

The shell and holes must conform to the assertions specified in the OpenGIS Simple Features Specification for SQL .

## Constructor & Destructor Documentation

geos::geom::Polygon::Polygon | ( | LinearRing * | newShell,
|  | std::vector< Geometry * > * | newHoles,
|  | const GeometryFactory * | newFactory
| ) |  |
| protected

Constructs a `Polygon` with the given exterior and interior boundaries.

Parameters

  newShell | the outer boundary of the new Polygon, or `null` or an empty LinearRing if the empty geometry is to be created.
  newHoles | the LinearRings defining the inner boundaries of the new Polygon, or null or empty LinearRing if the empty geometry is to be created.
  newFactory | the GeometryFactory used to create this geometry

Polygon will take ownership of Shell and Holes LinearRings

## Member Function Documentation

void geos::geom::Polygon::apply_ro | ( | CoordinateSequenceFilter & | filter | ) | const
| virtual

Performs a read-only operation on the coordinates in this Geometry's CoordinateSequences.

Parameters

  filter | the filter to apply

Implements geos::geom::Geometry.

void geos::geom::Polygon::apply_rw | ( | CoordinateSequenceFilter & | filter | ) |
| virtual

Performs an operation on the coordinates in this Geometry's CoordinateSequences.s If the filter reports that a coordinate value has been changed, geometryChanged will be called automatically.

Parameters

  filter | the filter to apply

Implements geos::geom::Geometry.

virtual Geometry* geos::geom::Polygon::clone | ( |  | ) | const
| inline virtual

Creates and returns a full copy of this Polygon object. (including all coordinates contained by it).

Returns
  a clone of this instance

Implements geos::geom::Geometry.

Geometry* geos::geom::Polygon::getBoundary | ( |  | ) | const
| virtual

Computes the boundary of this geometry.

Returns
  a lineal geometry (which may be empty)

See Also
  Geometry::getBoundary

Implements geos::geom::Geometry.

bool geos::geom::Polygon::isSimple | ( |  | ) | const
| virtual

Tests if a valid polygon is simple. This method always returns true, since a valid polygon is always simple.

Returns
  `true`

Reimplemented from geos::geom::Geometry.

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

- Polygon.h