GEOS  3.3.3
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:
geos::geom::Geometry geos::geom::Polygonal geos::geom::Geometry

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< GeometryAutoPtr
 An auto_ptr of Geometry.

Public Member Functions

virtual Geometryclone () const
CoordinateSequencegetCoordinates () 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)
GeometrygetBoundary () 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 LineStringgetExteriorRing () const
 Returns the exterior ring (shell)
size_t getNumInteriorRing () const
 Returns number of interior rings (hole)
const LineStringgetInteriorRingN (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
GeometryconvexHull () 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 CoordinategetCoordinate () 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 GeometryFactorygetFactory () 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 PrecisionModelgetPrecisionModel () const
 Get the PrecisionModel used to create this Geometry.
virtual std::size_t getNumGeometries () const
virtual const GeometrygetGeometryN (std::size_t) const
virtual bool isValid () const
 Tests the validity of this Geometry.
virtual GeometrygetEnvelope () const
 Returns this Geometrys bounding box.
virtual const EnvelopegetEnvelopeInternal () 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 IntersectionMatrixrelate (const Geometry *g) const
 Returns the DE-9IM intersection matrix for the two Geometrys.
IntersectionMatrixrelate (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 Geometrybuffer (double distance) const
 Returns a buffer region around this Geometry having the given width.
virtual Geometrybuffer (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 Geometrybuffer (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 Geometryintersection (const Geometry *other) const
 Returns a Geometry representing the points shared by this Geometry and other.
GeometryUnion (const Geometry *other) const
 Returns a Geometry representing all the points in this Geometry and other.
AutoPtr Union () const
virtual Geometrydifference (const Geometry *other) const
 Returns a Geometry representing the points making up this Geometry that do not make up other.
virtual GeometrysymDifference (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 PointgetCentroid () const
 Computes the centroid of this Geometry.
virtual bool getCentroid (Coordinate &ret) const
 Computes the centroid of this Geometry as a Coordinate.
virtual PointgetInteriorPoint () 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

LinearRingshell
std::vector< Geometry * > * holes
- Protected Attributes inherited from geos::geom::Geometry
std::auto_ptr< Envelopeenvelope
 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
newShellthe outer boundary of the new Polygon, or null or an empty LinearRing if the empty geometry is to be created.
newHolesthe LinearRings defining the inner boundaries of the new Polygon, or null or empty LinearRing if the empty geometry is to be created.
newFactorythe 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
filterthe 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
filterthe filter to apply

Implements geos::geom::Geometry.

virtual Geometry* geos::geom::Polygon::clone ( ) const
inlinevirtual

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: