HydroCouple  2.0.0
HydroCouple Interface Definitions
HydroCouple::Spatial::IPolygon Class Referenceabstract

A IPolygon is a planar ISurface defined by 1 exterior boundary and 0 or more interior boundaries. More...

#include <hydrocouplespatial.h>

Inheritance diagram for HydroCouple::Spatial::IPolygon:
Collaboration diagram for HydroCouple::Spatial::IPolygon:

Public Member Functions

virtual ~IPolygon ()=0
 IPolygon destructor. More...
 
virtual ILineStringexteriorRing () const =0
 
virtual int interiorRingCount () const =0
 
virtual ILineStringinteriorRing (int index) const =0
 
virtual IEdgeedge () const =0
 An arbitrary adjacent edge for this IPolygon. More...
 
virtual IPolyhedralSurfacepolyhydralSurface () const =0
 polyhydralSurface More...
 
- Public Member Functions inherited from HydroCouple::Spatial::ISurface
virtual ~ISurface ()=0
 ISurface destructor. More...
 
virtual double area () const =0
 The area of this ISurface, as measured in the spatial reference system of this ISurface. More...
 
virtual IPointcentroid () const =0
 The mathematical centroid for this ISurface as a Point. The result is not guaranteed to be on this ISurface. More...
 
virtual IPointpointOnSurface () const =0
 A Point guaranteed to be on this Surface. More...
 
virtual IMultiCurveboundaryMultiCurve () const =0
 boundaryMultiCurve More...
 
- Public Member Functions inherited from HydroCouple::Spatial::IGeometry
virtual ~IGeometry ()=0
 The type of IGeometry. More...
 
virtual string id () const =0
 id of the geometry. More...
 
virtual unsigned int index () const =0
 index of the geometry if it is part of a collection. More...
 
virtual int dimension () const =0
 The inherent dimension of this geometric object, which must be less than or equal to the coordinate dimension. In non - homogeneous collections, this will return the largest topological dimension of the contained objects. More...
 
virtual int coordinateDimension () const =0
 Get the dimension of the coordinates in this object. More...
 
virtual GeometryType geometryType () const =0
 Get the dimension of the coordinates in this object. More...
 
virtual ISpatialReferenceSystemspatialReferenceSystem () const =0
 Spatial reference system of geometric object. More...
 
virtual IEnvelopeenvelope () const =0
 The minimum bounding box for this Geometry, returned as a IGeometry. Recalculated at the time of the call. More...
 
virtual string getWKT () const =0
 Exports this geometric object to a specific Well-known Text Representation of Geometry. More...
 
virtual unsigned char * getWKB (int &size) const =0
 Exports this geometric object to a specific Well-known byte Representation of Geometry. More...
 
virtual bool isEmpty () const =0
 If true, then this geometric object represents the empty point set ∅ for the coordinate space. More...
 
virtual bool isSimple () const =0
 Returns true if this geometric object has no anomalous geometric points, such as self intersection or self tangency. More...
 
virtual bool is3D () const =0
 
virtual bool isMeasured () const =0
 
virtual IGeometryboundary () const =0
 Returns the closure of the combinatorial boundary of this geometric object (Reference [1], section 3.12.2). More...
 
virtual bool equals (const IGeometry &geom) const =0
 
virtual bool disjoint (const IGeometry &geom) const =0
 
virtual bool intersects (const IGeometry &geom) const =0
 
virtual bool touches (const IGeometry &geom) const =0
 
virtual bool crosses (const IGeometry &geom) const =0
 
virtual bool within (const IGeometry &geom) const =0
 
virtual bool contains (const IGeometry &geom) const =0
 
virtual bool overlaps (const IGeometry &geom) const =0
 
virtual bool relate (const IGeometry &geom) const =0
 
virtual IGeometrylocateAlong (double value) const =0
 
virtual IGeometrylocateBetween (double mStart, double mEnd) const =0
 
virtual double distance (const IGeometry &geom) const =0
 Returns the shortest distance between any two Points in the two geometric objects as calculated in the spatial reference system of this geometric object. More...
 
virtual IGeometrybuffer (double bufferDistance) const =0
 Returns a geometric object that represents all Points whose distance from this geometric object is less than or equal to distance. More...
 
virtual IGeometryconvexHull () const =0
 
virtual IGeometryintersection (const IGeometry &geom) const =0
 
virtual IGeometryunionG (const IGeometry &geom) const =0
 
virtual IGeometrydifference (const IGeometry &geom) const =0
 
virtual IGeometrysymmetricDifference (const IGeometry &geom) const =0
 

Additional Inherited Members

- Public Types inherited from HydroCouple::Spatial::IGeometry
enum  GeometryType {
  Geometry = 0 ,
  Point = 1 ,
  LineString = 2 ,
  Polygon = 3 ,
  Triangle = 17 ,
  MultiPoint = 4 ,
  MultiLineString = 5 ,
  MultiPolygon = 6 ,
  GeometryCollection = 7 ,
  CircularString = 8 ,
  CompoundCurve = 9 ,
  CurvePolygon = 10 ,
  MultiCurve = 11 ,
  MultiSurface = 12 ,
  Curve = 13 ,
  Surface = 14 ,
  PolyhedralSurface = 15 ,
  TIN = 16 ,
  GeometryZ = 1000 ,
  PointZ = 1001 ,
  LineStringZ = 1002 ,
  PolygonZ = 1003 ,
  TriangleZ = 1017 ,
  MultiPointZ = 1004 ,
  MultiLineStringZ = 1005 ,
  MultiPolygonZ = 1006 ,
  GeometryCollectionZ = 1007 ,
  CircularStringZ = 1008 ,
  CompoundCurveZ = 1009 ,
  CurvePolygonZ = 1010 ,
  MultiCurveZ = 1011 ,
  MultiSurfaceZ = 1012 ,
  CurveZ = 1013 ,
  SurfaceZ = 1014 ,
  PolyhedralSurfaceZ = 1015 ,
  TINZ = 1016 ,
  GeometryM = 2000 ,
  PointM = 2001 ,
  LineStringM = 2002 ,
  PolygonM = 2003 ,
  TriangleM = 2017 ,
  MultiPointM = 2004 ,
  MultiLineStringM = 2005 ,
  MultiPolygonM = 2006 ,
  GeometryCollectionM = 2007 ,
  CircularStringM = 2008 ,
  CompoundCurveM = 2009 ,
  CurvePolygonM = 2010 ,
  MultiCurveM = 2011 ,
  MultiSurfaceM = 2012 ,
  CurveM = 2013 ,
  SurfaceM = 2014 ,
  PolyhedralSurfaceM = 2015 ,
  TINM = 2016 ,
  GeometryZM = 3000 ,
  PointZM = 3001 ,
  LineStringZM = 3002 ,
  PolygonZM = 3003 ,
  TriangleZM = 3017 ,
  MultiPointZM = 3004 ,
  MultiLineStringZM = 3005 ,
  MultiPolygonZM = 3006 ,
  GeometryCollectionZM = 3007 ,
  CircularStringZM = 3008 ,
  CompoundCurveZM = 3009 ,
  CurvePolygonZM = 3010 ,
  MultiCurveZM = 3011 ,
  MultiSurfaceZM = 3012 ,
  CurveZM = 3013 ,
  SurfaceZM = 3014 ,
  PolyhedralSurfaceZM = 3015 ,
  TINZM = 3016
}
 The type of IGeometry. More...
 

Detailed Description

A IPolygon is a planar ISurface defined by 1 exterior boundary and 0 or more interior boundaries.

Each interior boundary defines a hole in the IPolygon.

The exterior boundary LinearRing defines the “top” of the surface which is the side of the surface from which the exterior boundary appears to traverse the boundary in a counter clockwise direction. The interior LinearRings will have the opposite orientation, and appear as clockwise when viewed from the “top”,

The assertions for Polygons (the rules that define valid Polygons) are as follows: a) Polygons are topologically closed; b) The boundary of a Polygon consists of a set of ILinearRings that make up its exterior and interior boundaries; c) No two Rings in the boundary cross and the Rings in the boundary of a IPolygon may intersect at a Point but only as a tangent, e.g.

∀ P ∈ Polygon, ∀ c1,c2∈P.Boundary(), c1≠c2, ∀ p, q ∈Point, p, q ∈ c1, p ≠ q , [p ∈ c2] ⇒ [∃ δ > 0 ∋ [|p-q|<δ] ⇒ [q ∉ c2] ];

Note
This last condition says that at a point common to the two curves, nearby points cannot be common. This forces each common point to be a point of tangency.

d) A Polygon may not have cut lines, spikes or punctures e.g.: ∀ P ∈ Polygon, P = P.Interior.Closure; e) The interior of every Polygon is a connected point set; f) The exterior of a Polygon with 1 or more holes is not connected. Each hole defines a connected component of the exterior. In the above assertions, interior, closure and exterior have the standard topological definitions. The combination of (a) and (c) makes a Polygon a regular closed IPoint set. IPolygons are simple geometric objects.

Constructor & Destructor Documentation

◆ ~IPolygon()

virtual HydroCouple::Spatial::IPolygon::~IPolygon ( )
pure virtual

IPolygon destructor.

Member Function Documentation

◆ edge()

virtual IEdge* HydroCouple::Spatial::IPolygon::edge ( ) const
pure virtual

An arbitrary adjacent edge for this IPolygon.

Returns
An edge that is adjacent to this face; null if degenerate

◆ exteriorRing()

virtual ILineString* HydroCouple::Spatial::IPolygon::exteriorRing ( ) const
pure virtual
Returns
the exterior ring of this IPolygon.

◆ interiorRing()

virtual ILineString* HydroCouple::Spatial::IPolygon::interiorRing ( int  index) const
pure virtual
Returns
the index - th interior ring for this IPolygon as a ILineString.

◆ interiorRingCount()

virtual int HydroCouple::Spatial::IPolygon::interiorRingCount ( ) const
pure virtual
Returns
the number of interior rings in this IPolygon.

◆ polyhydralSurface()

virtual IPolyhedralSurface* HydroCouple::Spatial::IPolygon::polyhydralSurface ( ) const
pure virtual

polyhydralSurface

Returns
the surface this IPolygon belongs to. Otherwise returns Null.

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