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

A ISurface is a 2-dimensional IGeometry object. More...

#include <hydrocouplespatial.h>

Inheritance diagram for HydroCouple::Spatial::ISurface:
Collaboration diagram for HydroCouple::Spatial::ISurface:

Public Member Functions

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 ISurface is a 2-dimensional IGeometry object.

A simple Surface may consists of a single patch that is associated with one exterior boundary and 0 or more interior boundaries. A single such Surface patch in 3-dimensional space is isometric to planar Surfaces, by a simple affine rotation matrix that rotates the patch onto the plane z = 0. If the patch is not vertical, the projection onto the same plane is an isomorphism, and can be represented as a linear transformation, i.e. an affine.

Polyhedral Surfaces are formed by stitching together such simple Surfaces patches along their common boundaries. Such polyhedral Surfaces in a 3-dimensional space may not be planar as a whole, depending on the orientation of their planar normals (Reference [1], sections 3.12.9.1, and 3.12.9.3). If all the patches are in alignment (their normals are parallel), then the whole stitched polyhedral surface is co-planar and can be represented as a single patch if it is connected.

The boundary of a simple Surface is the set of closed Curves corresponding to its exterior and interior� boundaries (Reference [1], section 3.12.9.4).

The only instantiable subclasses of ISurface defined in this standard are IPolygon and IPolyhedralSurface. A IPolygon is a simple Surface that is planar. A IPolyhedralSurface is a simple surface, consisting of some number of IPolygon patches or facets. If a IPolyhedralSurface is closed, then it bounds a solid. A IMultiSurface containing a set of closed IPolyhedralSurfaces can be used to represent a ISolid object with holes.

Constructor & Destructor Documentation

◆ ~ISurface()

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

ISurface destructor.

Member Function Documentation

◆ area()

virtual double HydroCouple::Spatial::ISurface::area ( ) const
pure virtual

The area of this ISurface, as measured in the spatial reference system of this ISurface.

◆ boundaryMultiCurve()

virtual IMultiCurve* HydroCouple::Spatial::ISurface::boundaryMultiCurve ( ) const
pure virtual

boundaryMultiCurve

Returns

◆ centroid()

virtual IPoint* HydroCouple::Spatial::ISurface::centroid ( ) const
pure virtual

The mathematical centroid for this ISurface as a Point. The result is not guaranteed to be on this ISurface.

◆ pointOnSurface()

virtual IPoint* HydroCouple::Spatial::ISurface::pointOnSurface ( ) const
pure virtual

A Point guaranteed to be on this Surface.


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