HydroCouple  1.0.0
Description of the HydroCouple Component-Based Model Coupling 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 ()
 
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 ()
 
virtual QString id () const =0
 id 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 goemetric 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 QString 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

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

Member Function Documentation

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

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

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

boundaryMultiCurve

Returns
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.

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: