HydroCouple  1.0.0
Description of the HydroCouple Component-Based Model Coupling Interface Definitions
HydroCouple::Spatial::ICurve Class Referenceabstract

A Curve is a 1-dimensional geometric object usually stored as a sequence of IPoints, with the subtype of ICurve specifying the form of the interpolation between IPoints. More...

#include <hydrocouplespatial.h>

Inheritance diagram for HydroCouple::Spatial::ICurve:
Collaboration diagram for HydroCouple::Spatial::ICurve:

Public Member Functions

virtual ~ICurve ()
 
virtual double length () const =0
 The length of this ICurve in its associated ISpatialReferenceSystem. More...
 
virtual IPointstartPoint () const =0
 The start IPoint of this ICurve. More...
 
virtual IPointendPoint () const =0
 The end IPoint of this ICurve. More...
 
virtual bool isClosed () const =0
 
virtual bool isRing () const =0
 
- 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 Curve is a 1-dimensional geometric object usually stored as a sequence of IPoints, with the subtype of ICurve specifying the form of the interpolation between IPoints.

This standard defines only one subclass of Curve, LineString, which uses linear interpolation between Points.

A Curve is a 1-dimensional geometric object that is the homeomorphic image of a real, closed, interval: D = [a, b] = {t∈ℜ⏐ a ≤ t ≤ b} under a mapping f :[a, b] → ℜn where n is the coordinate dimension of the underlying Spatial Reference System. A Curve is simple if it does not pass through the same Point twice with the possible exception of the two end points (Reference [1], section 3.12.7.3):

∀ c ∈ Curve, [a, b] = c.Domain, c =: f :[a, b] → ℜ n c.IsSimple ⇔ ∀ x1, x2 ∈ [a, b]: [ f(x1)=f(x2) ∧ x1<x2] ⇒ [x1=a ∧ x2=b] A Curve is closed if its start Point is equal to its end Point (Reference [1], section 3.12.7.3). c.IsClosed ⇔ [f(a) = f(b)]

The boundary of a closed Curve is empty. c.IsClosed ⇔ [c.boundary = ∅] A Curve that is simple and closed is a Ring. The boundary of a non-closed Curve consists of its two end Points (Reference [1], section 3.12.3.2). A Curve is defined as topologically closed, that is, it contains its endpoints f(a) and f(b).

Constructor & Destructor Documentation

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

Member Function Documentation

virtual IPoint* HydroCouple::Spatial::ICurve::endPoint ( ) const
pure virtual

The end IPoint of this ICurve.

virtual bool HydroCouple::Spatial::ICurve::isClosed ( ) const
pure virtual
Returns
True if this ICurve is closed[startPoint() = endPoint()].
virtual bool HydroCouple::Spatial::ICurve::isRing ( ) const
pure virtual
Returns
True if this ICurve is closed [startPoint() = endPoint()] and this ICurve is simple(does not pass through the same Point more than once).
virtual double HydroCouple::Spatial::ICurve::length ( ) const
pure virtual

The length of this ICurve in its associated ISpatialReferenceSystem.

virtual IPoint* HydroCouple::Spatial::ICurve::startPoint ( ) const
pure virtual

The start IPoint of this ICurve.


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