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

An IPolyhedralSurface is a contiguous collection of polygons, which share common boundary segments. More...

#include <hydrocouplespatial.h>

Inheritance diagram for HydroCouple::Spatial::IPolyhedralSurface:
Collaboration diagram for HydroCouple::Spatial::IPolyhedralSurface:

Public Member Functions

virtual ~IPolyhedralSurface ()=0
 IPolyhedralSurface destructor. More...
 
virtual int patchCount () const =0
 The number of polygons in this surface. More...
 
virtual IPolygonpatch (int index) const =0
 
virtual int vertexCount () const =0
 vertexCount represents the number of all the vertices shared by the patches. More...
 
virtual IVertexvertex (int index) const =0
 vertex of the network with the specified index. More...
 
virtual IMultiPolygonboundingPolygons (const IPolygon *polygon) const =0
 
virtual bool isClosed () const =0
 
- 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

An IPolyhedralSurface is a contiguous collection of polygons, which share common boundary segments.

For each pair of IPolygons that "touch", the common boundary shall be expressible as a finite collection of ILineStrings such ILineString shall be part of the boundary of at most 2 IPolygon patches. A ITIN (triangulated irregular network) is a IPolyhedralSurface consisting only of ITriangle patches.

For any two IPolygons that share a common boundary, the "top" of the IPolygon shall be consistent. This means that when two ILinearRings from these two IPolygons traverse the common boundary segment, they do so in opposite directions. Since the IPolyhedral surface is contiguous, all IPolygons will be thus consistently oriented. This means that a non-oriented surface (such as Möbius band) shall not have single surface representations. They may be represented by a IMultiSurface.

If each such ILineString is the boundary of exactly 2 IPolygon patches, then the IPolyhedralSurface is a simple, closed polyhedron and is topologically isomorphic to the surface of a sphere. By the Jordan Surface Theorem (Jordan's Theorem for 2-spheres), such polyhedrons enclose a solid topologically isomorphic to the interior of a sphere; the ball. In this case, the "top" of the surface will either point inward or outward of the enclosed finite solid. If outward, the surface is the exterior boundary of the enclosed surface. If inward, the surface is the interior of the infinite complement of the enclosed solid. A Ball with some number of voids (holes) inside can thus be presented as one exterior boundary shell, and some number in interior boundary shells.

Constructor & Destructor Documentation

◆ ~IPolyhedralSurface()

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

IPolyhedralSurface destructor.

Member Function Documentation

◆ boundingPolygons()

virtual IMultiPolygon* HydroCouple::Spatial::IPolyhedralSurface::boundingPolygons ( const IPolygon polygon) const
pure virtual
Returns
The collection of polygons in this surface that bounds the given polygon "polygon" for any polygon "polygon" in the surface.

◆ isClosed()

virtual bool HydroCouple::Spatial::IPolyhedralSurface::isClosed ( ) const
pure virtual
Returns
1 (True) if the polygon closes on itself, and thus has no boundary and encloses a solid.

◆ patch()

virtual IPolygon* HydroCouple::Spatial::IPolyhedralSurface::patch ( int  index) const
pure virtual
Returns
An IPolygon in this surface, the order is arbitrary.
Parameters
indexof the IPolygon patch.

◆ patchCount()

virtual int HydroCouple::Spatial::IPolyhedralSurface::patchCount ( ) const
pure virtual

The number of polygons in this surface.

Returns
The number of including polygons.

◆ vertex()

virtual IVertex* HydroCouple::Spatial::IPolyhedralSurface::vertex ( int  index) const
pure virtual

vertex of the network with the specified index.

Parameters
indexof the vertex in the network.
Returns
The vertex at the specified index.

◆ vertexCount()

virtual int HydroCouple::Spatial::IPolyhedralSurface::vertexCount ( ) const
pure virtual

vertexCount represents the number of all the vertices shared by the patches.

Returns

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