HydroCouple  1.0.0
Description of the HydroCouple Component-Based Model Coupling Interface Definitions
hydrocouplespatial.h
Go to the documentation of this file.
1 
23 #ifndef HYDROCOUPLESPATIAL_H
24 #define HYDROCOUPLESPATIAL_H
25 
26 #include "hydrocouple.h"
27 
28 namespace HydroCouple
29 {
33  namespace Spatial
34  {
35  class IEdge;
36  class IRasterBand;
37  class IPolygon;
38  class IPolyhedralSurface;
39 
45  {
49  };
50 
55  {
56 
57  public:
58 
60 
66  virtual int authSRID() const = 0;
67 
71  virtual QString authName() const = 0;
72 
76  virtual QString srText() const = 0;
77  };
78 
82  class IEnvelope
83  {
84  public:
85  virtual ~IEnvelope(){}
86 
91  virtual double minX() const = 0;
92 
93  virtual double maxX() const = 0;
94 
95  virtual double minY() const = 0;
96 
97  virtual double maxY() const = 0;
98 
99  virtual double minZ() const = 0;
100 
101  virtual double maxZ() const = 0;
102  };
103 
107  class IGeometry
108  {
109  public:
110 
115  {
116  Geometry = 0,
117  Point = 1,
118  LineString = 2,
119  Polygon = 3,
120  Triangle = 17,
121  MultiPoint = 4,
122  MultiLineString = 5,
123  MultiPolygon = 6,
124  GeometryCollection = 7,
125  CircularString = 8,
126  CompoundCurve = 9,
127  CurvePolygon = 10,
128  MultiCurve = 11,
129  MultiSurface = 12,
130  Curve = 13,
131  Surface = 14,
132  PolyhedralSurface = 15,
133  TIN =16,
134 
135 
136  GeometryZ = 1000,
137  PointZ = 1001,
138  LineStringZ = 1002,
139  PolygonZ = 1003,
140  TriangleZ = 1017,
141  MultiPointZ = 1004,
142  MultiLineStringZ = 1005,
143  MultiPolygonZ = 1006,
144  GeometryCollectionZ = 1007,
145  CircularStringZ = 1008,
146  CompoundCurveZ = 1009,
147  CurvePolygonZ = 1010,
148  MultiCurveZ = 1011,
149  MultiSurfaceZ = 1012,
150  CurveZ = 1013,
151  SurfaceZ = 1014,
152  PolyhedralSurfaceZ = 1015,
153  TINZ = 1016,
154 
155 
156  GeometryM = 2000,
157  PointM = 2001,
158  LineStringM = 2002,
159  PolygonM = 2003,
160  TriangleM = 2017,
161  MultiPointM = 2004,
162  MultiLineStringM = 2005,
163  MultiPolygonM = 2006,
164  GeometryCollectionM = 2007,
165  CircularStringM = 2008,
166  CompoundCurveM = 2009,
167  CurvePolygonM = 2010,
168  MultiCurveM = 2011,
169  MultiSurfaceM = 2012,
170  CurveM = 2013,
171  SurfaceM = 2014,
172  PolyhedralSurfaceM = 2015,
173  TINM = 2016,
174 
175 
176  GeometryZM = 3000,
177  PointZM = 3001,
178  LineStringZM = 3002,
179  PolygonZM = 3003,
180  TriangleZM = 3017,
181  MultiPointZM = 3004,
182  MultiLineStringZM = 3005,
183  MultiPolygonZM = 3006,
184  GeometryCollectionZM = 3007,
185  CircularStringZM = 3008,
186  CompoundCurveZM = 3009,
187  CurvePolygonZM = 3010,
188  MultiCurveZM = 3011,
189  MultiSurfaceZM = 3012,
190  CurveZM = 3013,
191  SurfaceZM = 3014,
192  PolyhedralSurfaceZM = 3015,
193  TINZM = 3016,
194  };
195 
196  virtual ~IGeometry(){}
197 
202  virtual QString id() const = 0;
203 
208  virtual unsigned int index() const = 0;
209 
217  virtual int dimension() const = 0;
218 
224  virtual int coordinateDimension() const = 0;
225 
234  virtual GeometryType geometryType() const = 0;
235 
239  virtual ISpatialReferenceSystem *spatialReferenceSystem() const = 0;
240 
245  virtual IEnvelope *envelope() const = 0;
246 
250  virtual QString getWKT() const = 0;
251 
255  virtual unsigned char* getWKB(int &size) const = 0;
256 
261  virtual bool isEmpty() const = 0;
262 
270  virtual bool isSimple() const = 0;
271 
275  virtual bool is3D() const = 0;
276 
280  virtual bool isMeasured() const = 0;
281 
291  virtual IGeometry *boundary() const = 0;
292 
297 
301  virtual bool equals(const IGeometry *geom) const = 0;
302 
306  virtual bool disjoint(const IGeometry *geom) const = 0;
307 
311  virtual bool intersects(const IGeometry *geom) const = 0;
312 
316  virtual bool touches(const IGeometry *geom) const = 0;
317 
321  virtual bool crosses(const IGeometry *geom) const = 0;
322 
326  virtual bool within(const IGeometry *geom) const = 0;
327 
331  virtual bool contains(const IGeometry *geom) const = 0;
332 
336  virtual bool overlaps(const IGeometry *geom) const = 0;
337 
347  virtual bool relate(const IGeometry *geom) const = 0;
348 
352  virtual IGeometry *locateAlong(double value) const = 0;
353 
357  virtual IGeometry *locateBetween(double mStart, double mEnd) const = 0;
358 
360 
361 
375  virtual double distance(const IGeometry* geom) const = 0;
376 
384  virtual IGeometry *buffer(double bufferDistance) const = 0;
385 
392  virtual IGeometry *convexHull() const = 0;
393 
397  virtual IGeometry *intersection(const IGeometry* geom) const = 0;
398 
402  virtual IGeometry *unionG(const IGeometry* geom) const = 0;
403 
407  virtual IGeometry *difference(const IGeometry* geom) const = 0;
408 
412  virtual IGeometry *symmetricDifference(const IGeometry* geom) const = 0;
413 
415  };
416 
430  class IGeometryCollection : public virtual IGeometry
431  {
432 
433  public:
434 
436 
441  virtual int geometryCount() const = 0;
442 
448  virtual IGeometry *geometry(int index) const = 0;
449 
450  };
451 
462  class IPoint : public virtual IGeometry
463  {
464  public:
465 
466  virtual ~IPoint(){}
467 
471  virtual double x() const = 0;
472 
476  virtual double y() const = 0;
477 
481  virtual double z() const = 0;
482 
486  virtual double m() const = 0;
487  };
488 
502  class IMultiPoint : public virtual IGeometryCollection
503  {
504 
505  public:
506 
507  virtual ~IMultiPoint(){}
508 
512  virtual IPoint *point(int index) const = 0;
513 
514  };
515 
519  class IVertex : public virtual IPoint
520  {
521  public:
522 
523  virtual ~IVertex(){}
524 
530  virtual IEdge *edge() const = 0;
531 
532  };
533 
557  class ICurve : public virtual IGeometry
558  {
559 
560  public:
561 
562  virtual ~ICurve(){}
563 
567  virtual double length() const = 0;
568 
572  virtual IPoint *startPoint() const = 0;
573 
577  virtual IPoint *endPoint() const = 0;
578 
582  virtual bool isClosed() const = 0;
583 
588  virtual bool isRing() const = 0;
589  };
590 
612  class IMultiCurve : public virtual IGeometryCollection
613  {
614  public:
615 
616  virtual ~IMultiCurve(){}
617 
622  virtual bool isClosed() const = 0;
623 
628  virtual double length() const = 0;
629  };
630 
635  class ILineString : public virtual ICurve
636  {
637  public:
638 
639  virtual ~ILineString(){}
640 
644  virtual int pointCount() const = 0;
645 
649  virtual IPoint *point(int index) const = 0;
650 
651  };
652 
656  class IMultiLineString : public virtual IMultiCurve
657  {
658  public:
659 
660  virtual ~IMultiLineString(){}
661 
663  virtual ILineString *lineString(int index) const = 0;
664  };
665 
669  class ILine : public virtual ILineString
670  {
671  public:
672 
673  virtual ~ILine(){}
674  };
675 
679  class ILinearRing : public virtual ILineString
680  {
681  public:
682 
683  virtual ~ILinearRing(){}
684  };
685 
692  class IEdge
693  {
694  public:
695 
696  virtual ~IEdge(){}
697 
702  virtual unsigned int index() const = 0;
703 
708  virtual IVertex *orig() = 0;
709 
714  virtual IVertex *dest() = 0;
715 
721  virtual IPolygon *left() = 0 ;
722 
728  virtual IPolygon *right() = 0;
729 
734  virtual IPolygon *face() = 0;
735 
741  virtual IEdge *rot() = 0;
742 
748  virtual IEdge *invRot() = 0;
749 
755  virtual IEdge *sym() = 0;
756 
762  virtual IEdge *origNext() = 0;
763 
769  virtual IEdge *origPrev() = 0;
770 
776  virtual IEdge *destNext() = 0;
777 
783  virtual IEdge *destPrev() = 0;
784 
790  virtual IEdge *leftNext() = 0;
791 
797  virtual IEdge *leftPrev() = 0;
798 
804  virtual IEdge *rightNext() = 0;
805 
811  virtual IEdge *rightPrev() = 0;
812 
813  };
814 
837  class ISurface : public virtual IGeometry
838  {
839  public:
840 
841  virtual ~ISurface(){}
842 
847  virtual double area() const = 0;
848 
853  virtual IPoint *centroid() const = 0;
854 
858  virtual IPoint *pointOnSurface() const = 0;
859 
864  virtual IMultiCurve *boundaryMultiCurve() const = 0;
865 
866  };
867 
872  class IMultiSurface : public virtual IGeometryCollection
873  {
874 
875  public:
876 
877  virtual ~IMultiSurface(){}
878 
883  virtual double area() const = 0;
884 
889  virtual IPoint* centroid() const = 0;
890 
895  virtual IPoint* pointOnSurface() const = 0;
896 
897  };
898 
936  class IPolygon : public virtual ISurface
937  {
938  public:
939 
940  virtual ~IPolygon(){}
941 
945  virtual ILineString *exteriorRing() const = 0;
946 
950  virtual int interiorRingCount() const = 0;
951 
955  virtual ILineString *interiorRing(int index) const = 0;
956 
962  virtual IEdge *edge() const = 0;
963 
968  virtual IPolyhedralSurface *polyhydralSurface() const = 0;
969 
970  };
971 
975  class IMultiPolygon : public virtual IMultiSurface
976  {
977 
978  public:
979  virtual ~IMultiPolygon(){}
980 
984  virtual IPolygon *polygon(int index) const = 0;
985  };
986 
991  class ITriangle : public virtual IPolygon
992  {
993  public:
994  virtual ~ITriangle(){}
995 
996  virtual IVertex *p1() const = 0;
997 
998  virtual IVertex *p2() const = 0;
999 
1000  virtual IVertex *p3() const = 0;
1001 
1002  };
1003 
1007  class INetwork : public virtual IMultiLineString
1008  {
1009  public:
1013  virtual ~INetwork(){}
1014 
1019  virtual QList<IVertex*> vertices() const ;
1020 
1021  };
1022 
1057  class IPolyhedralSurface : public virtual ISurface
1058  {
1059  public:
1060 
1062 
1066  virtual int patchCount() const = 0;
1067 
1072  virtual IPolygon *patch(int index) const = 0;
1073 
1078  virtual int vertexCount() const = 0;
1079 
1085  virtual IVertex *vertex(int index) const = 0;
1086 
1091  virtual IMultiPolygon *boundingPolygons(const IPolygon* polygon) const = 0;
1092 
1097  virtual bool isClosed() const = 0;
1098 
1099  };
1100 
1105  class ITIN : public virtual IPolyhedralSurface
1106  {
1107  public:
1108  virtual ~ITIN(){}
1109 
1113  virtual ITriangle *triangle(int index) const = 0;
1114  };
1115 
1119  class IRaster : public virtual IIdentity
1120  {
1121 
1122  public:
1123 
1128  {
1152  CFloat64
1153  };
1154 
1155  virtual ~IRaster(){}
1156 
1160  virtual int xSize() const = 0;
1161 
1165  virtual int ySize() const = 0;
1166 
1170  virtual int rasterBandCount() const = 0;
1171 
1175  virtual void addRasterBand(RasterDataType dataType) = 0;
1176 
1180  virtual ISpatialReferenceSystem *spatialReferenceSystem() const = 0;
1181 
1190  virtual void geoTransformation(double* transformationMatrix) = 0;
1191 
1195  virtual IRasterBand *getRasterBand(int bandIndex) const = 0;
1196 
1197  };
1198 
1202  class IRasterBand : public virtual IIdentity
1203  {
1204 
1205  public:
1206  virtual ~IRasterBand(){}
1207 
1209  virtual int xSize() const = 0;
1210 
1212  virtual int ySize() const = 0;
1213 
1215  virtual IRaster *raster() const = 0;
1216 
1218  virtual IRaster::RasterDataType dataType() const = 0;
1219 
1228  virtual void read(int xOffset, int yOffset, int xSize, int ySize, void* image) const = 0;
1229 
1238  virtual void write(int xOffset, int yOffset, int xSize, int ySize, const void* image) = 0;
1239 
1243  virtual double noData() const = 0;
1244  };
1245 
1250  {
1257  };
1258 
1262  class IRegularGrid2D : public virtual IIdentity
1263  {
1264  public:
1265  virtual ~IRegularGrid2D(){}
1266 
1271  virtual RegularGridType gridType() const = 0;
1272 
1277  virtual int numXNodes() const = 0;
1278 
1283  virtual int numYNodes() const = 0;
1284 
1291  virtual double xNodeLocation(int xNodeIndex , int yNodeIndex) const = 0;
1292 
1299  virtual double yNodeLocation(int xNodeIndex , int yNodeIndex) const = 0;
1300 
1307  virtual bool isActive(int xCellIndex , int yCellIndex) const = 0;
1308  };
1309 
1313  class IRegularGrid3D : public virtual IIdentity
1314  {
1315  public:
1316  virtual ~IRegularGrid3D(){}
1317 
1322  virtual RegularGridType gridType() const = 0;
1323 
1328  virtual int numXNodes() const = 0;
1329 
1334  virtual int numYNodes() const = 0;
1335 
1340  virtual int numZNodes() const = 0;
1341 
1348  virtual double xNodeLocation(int xNodeIndex , int yNodeIndex) const = 0;
1349 
1356  virtual double yNodeLocation(int xNodeIndex , int yNodeIndex) const = 0;
1357 
1365  virtual double zNodeLocation(int xNodeIndex , int yNodeIndex , int zNodeIndex) const = 0;
1366 
1374  virtual bool isActive(int xCellIndex , int yCellIndex , int zCellIndex) const = 0;
1375  };
1376 
1381  {
1384 
1385  public:
1386 
1388 
1393  virtual IGeometry::GeometryType geometryType() const = 0;
1394 
1399  virtual int geometryCount() const = 0;
1400 
1406  virtual IGeometry *geometry(int geometryIndex) const = 0;
1407 
1412  virtual HydroCouple::IDimension *geometryDimension() const = 0;
1413 
1418  virtual HydroCouple::Spatial::IEnvelope *envelope() const = 0;
1419 
1425  virtual void getValue(int geometryDimensionIndex, void *data) const = 0;
1426 
1433  virtual void getValues(int geometryDimensionIndex, int stride, void *data) const = 0;
1434 
1440  virtual void setValue(int geometryDimensionIndex, const void *data) = 0;
1441 
1448  virtual void setValues(int geometryDimensionIndex , int stride, const void* data) = 0;
1449 
1450  };
1451 
1456  {
1459 
1460  public:
1461 
1463 
1468  virtual MeshDataType meshDataType() const = 0;
1469 
1473  virtual IPolyhedralSurface *polyhedralSurface() const = 0;
1474 
1478  virtual IDimension *cellDimension() const = 0;
1479 
1484  virtual IDimension *edgeDimension() const = 0;
1485 
1490  virtual IDimension *nodeDimension() const = 0;
1491 
1499  virtual void getValue(int cellDimensionIndex, int faceDimensionIndex, int nodeDimensionIndex, void *data) const = 0;
1500 
1508  virtual void setValue(int cellDimensionIndex, int faceDimensionIndex, int nodeDimensionIndex, const void *data) = 0;
1509  };
1510 
1516  {
1517  public:
1518 
1520 
1524  virtual ITIN *TIN() const = 0;
1525  };
1526 
1531  {
1534 
1535  public:
1537 
1541  virtual IRaster *raster() const = 0;
1542 
1546  virtual IDimension *xDimension() const = 0;
1547 
1551  virtual IDimension *yDimension() const = 0;
1552 
1556  virtual IDimension *bandDimension() const = 0;
1557 
1565  virtual void getValue(int xIndex, int yIndex, int band, void *data) const = 0;
1566 
1576  virtual void getValues(int xIndex, int yIndex, int band, int xStride, int yStride, void* data) const = 0;
1577 
1585  virtual void setValue(int xIndex, int yIndex, int band, const void *data) = 0;
1586 
1596  virtual void setValues(int xIndex, int yIndex, int band, int xStride, int yStride, const void* data) = 0;
1597 
1598  };
1599 
1604  {
1605 
1608 
1609  public:
1610 
1615 
1619  virtual IRegularGrid2D *grid() const = 0;
1620 
1625  virtual MeshDataType meshDataType() const = 0;
1626 
1630  virtual IDimension *xCellDimension() const = 0;
1631 
1635  virtual IDimension *yCellDimension() const = 0;
1636 
1641  virtual IDimension *cellEdgeDimension() const = 0;
1642 
1647  virtual IDimension *cellNodeDimension() const = 0;
1648 
1657  virtual void getValue(int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellNodeIndex, void *data) const = 0;
1658 
1667  virtual void setValue(int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellNodeIndex, const void *data) = 0;
1668 
1669  };
1670 
1675  {
1676 
1679 
1680  public:
1681 
1683 
1687  virtual IRegularGrid3D *grid() const = 0;
1688 
1693  virtual MeshDataType meshDataType() const = 0;
1694 
1698  virtual IDimension *xCellDimension() const = 0;
1699 
1703  virtual IDimension *yCellDimension() const = 0;
1704 
1708  virtual IDimension *zCellDimension() const = 0;
1709 
1714  virtual IDimension *cellFaceDimension() const = 0;
1715 
1720  virtual IDimension *cellNodeDimension() const = 0;
1721 
1731  virtual void getValue(int xCellIndex, int yCellIndex, int zCellIndex,
1732  int cellFaceIndex, int cellNodeIndex, void *data) const = 0;
1733 
1743  virtual void setValue(int xCellIndex, int yCellIndex, int zCellIndex,
1744  int cellFaceIndex, int cellNodeIndex, const void *data) = 0;
1745 
1746  };
1747 
1752  {
1755 
1756  public:
1757 
1762 
1767  virtual int locationsCount() const = 0;
1768 
1774  virtual IPoint *location(int locationIndex) const = 0;
1775 
1780  virtual IDimension *locationsDimension() const = 0;
1781 
1787  virtual IDimension *spatialDimension() const = 0;
1788 
1795  virtual void getValue(int locationIndex, int spatialDimensionIndex, void *data) const = 0;
1796 
1805  virtual void getValues(int locationIndex, int spatialDimensionIndex,
1806  int locationStride, int spatialDimensionStride, void *data) const = 0;
1813  virtual void setValue(int locationIndex, int spatialDimensionIndex, const void *data) = 0;
1814 
1823  virtual void setValues(int locationIndex, int spatialDimensionIndex,
1824  int locationStride, int spatialDimensionStride, const void *data) = 0;
1825 
1826  };
1827  }
1828 }
1829 
1830 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ISpatialReferenceSystem, "HydroCouple::Spatial::ISpatialReferenceSystem/1.0")
1831 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IEnvelope, "HydroCouple::Spatial::IEnvelope/1.0")
1832 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IGeometry, "HydroCouple::Spatial::IGeometry/1.0")
1833 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IGeometryCollection, "HydroCouple::Spatial::IGeometryCollection/1.0")
1834 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IMultiPoint, "HydroCouple::Spatial::IMultiPoint/1.0")
1835 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IPoint, "HydroCouple::Spatial::IPoint/1.0")
1836 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IVertex, "HydroCouple::Spatial::IVertex/1.0")
1837 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ICurve, "HydroCouple::Spatial::ICurve/1.0")
1838 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IMultiCurve, "HydroCouple::Spatial::IMultiCurve/1.0")
1839 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IMultiLineString, "HydroCouple::Spatial::IMultiLineString/1.0")
1840 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ILineString, "HydroCouple::Spatial::ILineString/1.0")
1841 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ILine, "HydroCouple::Spatial::ILine/1.0")
1842 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ILinearRing, "HydroCouple::Spatial::ILinearRing/1.0")
1843 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IEdge, "HydroCouple::Spatial::IEdge/1.0")
1844 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ISurface, "HydroCouple::Spatial::ISurface/1.0")
1845 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IMultiSurface, "HydroCouple::Spatial::IMultiSurface/1.0")
1846 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IPolygon, "HydroCouple::Spatial::IPolygon/1.0")
1847 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IMultiPolygon, "HydroCouple::Spatial::IMultiPolygon/1.0")
1848 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ITriangle, "HydroCouple::Spatial::ITriangle/1.0")
1849 Q_DECLARE_INTERFACE(HydroCouple::Spatial::INetwork, "HydroCouple::Spatial::INetwork/1.0")
1850 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IPolyhedralSurface, "HydroCouple::Spatial::IPolyhedralSurface/1.0")
1851 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ITIN, "HydroCouple::Spatial::ITIN/1.0")
1852 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IRaster, "HydroCouple::Spatial::IRaster/1.0")
1853 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IRasterBand, "HydroCouple::Spatial::IRasterBand/1.0")
1854 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IRegularGrid2D, "HydroCouple::Spatial::IRegularGrid2D/1.0")
1855 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IRegularGrid3D, "HydroCouple::Spatial::IRegularGrid3D/1.0")
1856 
1857 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IGeometryComponentDataItem, "HydroCouple::Spatial::IGeometryComponentDataItem/1.0")
1858 Q_DECLARE_INTERFACE(HydroCouple::Spatial::ITINComponentDataItem, "HydroCouple::Spatial::ITINComponentDataItem/1.0")
1859 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IPolyhedralSurfaceComponentDataItem, "HydroCouple::Spatial::IPolyhedralSurfaceComponentDataItem/1.0")
1860 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IRegularGrid2DComponentDataItem, "HydroCouple::Spatial::IRegularGrid2DComponentDataItem/1.0")
1861 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IRegularGrid3DComponentDataItem, "HydroCouple::Spatial::IRegularGrid3DComponentDataItem/1.0")
1862 Q_DECLARE_INTERFACE(HydroCouple::Spatial::IVectorComponentDataItem, "HydroCouple::Spatial::IVectorComponentDataItem/1.0")
1863 
1865 Q_DECLARE_METATYPE(HydroCouple::Spatial::IGeometry*)
1866 Q_DECLARE_METATYPE(HydroCouple::Spatial::IGeometryCollection*)
1867 Q_DECLARE_METATYPE(HydroCouple::Spatial::IMultiPoint*)
1868 Q_DECLARE_METATYPE(HydroCouple::Spatial::IPoint*)
1869 Q_DECLARE_METATYPE(HydroCouple::Spatial::IVertex*)
1870 Q_DECLARE_METATYPE(HydroCouple::Spatial::ICurve*)
1871 Q_DECLARE_METATYPE(HydroCouple::Spatial::IMultiCurve*)
1872 Q_DECLARE_METATYPE(HydroCouple::Spatial::IMultiLineString*)
1873 Q_DECLARE_METATYPE(HydroCouple::Spatial::ILineString*)
1874 Q_DECLARE_METATYPE(HydroCouple::Spatial::ILinearRing*)
1875 Q_DECLARE_METATYPE(HydroCouple::Spatial::IEdge*)
1876 Q_DECLARE_METATYPE(HydroCouple::Spatial::ISurface*)
1877 Q_DECLARE_METATYPE(HydroCouple::Spatial::IMultiSurface*)
1878 Q_DECLARE_METATYPE(HydroCouple::Spatial::IPolygon*)
1879 Q_DECLARE_METATYPE(HydroCouple::Spatial::IMultiPolygon*)
1880 Q_DECLARE_METATYPE(HydroCouple::Spatial::ITriangle*)
1881 Q_DECLARE_METATYPE(HydroCouple::Spatial::INetwork*)
1882 Q_DECLARE_METATYPE(HydroCouple::Spatial::IPolyhedralSurface*)
1883 Q_DECLARE_METATYPE(HydroCouple::Spatial::ITIN*)
1884 Q_DECLARE_METATYPE(HydroCouple::Spatial::IRaster*)
1885 Q_DECLARE_METATYPE(HydroCouple::Spatial::IRasterBand*)
1886 Q_DECLARE_METATYPE(HydroCouple::Spatial::IRegularGrid2D*)
1887 Q_DECLARE_METATYPE(HydroCouple::Spatial::IRegularGrid3D*)
1888 
1894 
1895 #endif // HYDROCOUPLESPATIAL_H
1896 
Definition: hydrocouplespatial.h:48
virtual ~IPolyhedralSurfaceComponentDataItem()
Definition: hydrocouplespatial.h:1462
virtual ~IVectorComponentDataItem()
~IVectorComponentDataItem
Definition: hydrocouplespatial.h:1761
Definition: hydrocouplespatial.h:47
virtual ~ITINComponentDataItem()
Definition: hydrocouplespatial.h:1519
virtual ~ILinearRing()
Definition: hydrocouplespatial.h:683
An IMultiCurve is a 1-dimensional IGeometryCollection whose elements are ICurves. ...
Definition: hydrocouplespatial.h:612
virtual ~ICurve()
Definition: hydrocouplespatial.h:562
virtual int authSRID() const =0
Returns the Spatial Reference System ID for a geometric object. This will normally be a foreign key t...
An IRegularGrid3DComponentItem represents an IRegularGrid3D IComponentItem.
Definition: hydrocouplespatial.h:1674
An ILineString is a Curve with linear interpolation between Points. Each consecutive pair of Points d...
Definition: hydrocouplespatial.h:635
The ILine class is an ILineString with exactly 2 IPoints.
Definition: hydrocouplespatial.h:669
Rectilinear grid.
Definition: hydrocouplespatial.h:1254
The IVertex class is an IPoint of a topologically aware IGeometry.
Definition: hydrocouplespatial.h:519
An ITIN is a triangulated irregular network IPolyhedralSurface consisting only of ITriangle patches...
Definition: hydrocouplespatial.h:1105
Sixteen bit signed integer.
Definition: hydrocouplespatial.h:1136
An ITriangle is a IPolygon with 3 distinct, non-collinear vertices and no interior boundary...
Definition: hydrocouplespatial.h:991
virtual ~IRegularGrid3D()
Definition: hydrocouplespatial.h:1316
virtual ~IRaster()
Definition: hydrocouplespatial.h:1155
virtual ~ILine()
Definition: hydrocouplespatial.h:673
HydroCouple namespace contains the core interface specifications for the HydroCouple component-based ...
Definition: hydrocouple.h:49
MeshDataType
The MeshDataType enum describes the part of the geometry of the mesh that data corresponds to...
Definition: hydrocouplespatial.h:44
virtual ~ILineString()
Definition: hydrocouplespatial.h:639
virtual ~IPolygon()
Definition: hydrocouplespatial.h:940
virtual void setValue(const std::vector< int > &dimensionIndexes, const void *data)=0
Sets a multi-dimensional array of values for given dimension indexes.
virtual ~IGeometryCollection()
Definition: hydrocouplespatial.h:435
An IPoint is a 0-dimensional geometric object and represents a single location in coordinate space...
Definition: hydrocouplespatial.h:462
RasterDataType
The data type associated with a raster.
Definition: hydrocouplespatial.h:1127
The INetwork class.
Definition: hydrocouplespatial.h:1007
virtual ~INetwork()
~Network
Definition: hydrocouplespatial.h:1013
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.
Definition: hydrocouplespatial.h:557
IIdentity interface class defines a method to get the Id of an HydroCouple entity.
Definition: hydrocouple.h:179
An IRegularGrid2DComponentDataItem represents an IRegularGrid2D IComponentItem.
Definition: hydrocouplespatial.h:1603
ITINComponentDataItem represents ITIN IComponentDataItem.
Definition: hydrocouplespatial.h:1514
GeometryType
The type of IGeometry.
Definition: hydrocouplespatial.h:114
Cartesian grid.
Definition: hydrocouplespatial.h:1252
Thirty two bit unsigned integer.
Definition: hydrocouplespatial.h:1138
virtual ~IRegularGrid3DComponentDataItem()
Definition: hydrocouplespatial.h:1682
A directed edge from one vertex to another, adjacent to two faces. Based on Dani Lischinski&#39;s code fr...
Definition: hydrocouplespatial.h:692
virtual QString authName() const =0
The Authority Specific Spatial Reference System Identifier.
Thirty two bit signed integer.
Definition: hydrocouplespatial.h:1140
A ISurface is a 2-dimensional IGeometry object.
Definition: hydrocouplespatial.h:837
An IMultiLineString is an IMultiCurve whose elements are ILineStrings.
Definition: hydrocouplespatial.h:656
virtual ~IMultiSurface()
Definition: hydrocouplespatial.h:877
Complex Int16.
Definition: hydrocouplespatial.h:1146
An IMultiPoint is a 0-dimensional IGeometryCollection.
Definition: hydrocouplespatial.h:502
Complex Float32.
Definition: hydrocouplespatial.h:1150
virtual void getValue(const std::vector< int > &dimensionIndexes, void *data) const =0
Gets a multi-dimensional array of value for given dimension indexes. IndexArray = x + y * InSizeX + z...
A MultiSurface is a 2-dimensional GeometryCollection whose elements are Surfaces, all using coordinat...
Definition: hydrocouplespatial.h:872
Unknown or unspecified type.
Definition: hydrocouplespatial.h:1130
IPolyhedralSurfaceComponentItem represents IPolyhedralSurface IComponentItem.
Definition: hydrocouplespatial.h:1455
virtual ~ISpatialReferenceSystem()
Definition: hydrocouplespatial.h:59
virtual ~IPoint()
Definition: hydrocouplespatial.h:466
The IRegularGrid2D class.
Definition: hydrocouplespatial.h:1262
virtual ~IMultiPolygon()
Definition: hydrocouplespatial.h:979
The IRegularGrid3D class.
Definition: hydrocouplespatial.h:1313
virtual ~ITriangle()
Definition: hydrocouplespatial.h:994
A Raster spatial feature.
Definition: hydrocouplespatial.h:1119
virtual ~IRasterBand()
Definition: hydrocouplespatial.h:1206
The IEnvelope class.
Definition: hydrocouplespatial.h:82
An IGeometryCollection is a geometric object that is a collection of some number of IGeometry objects...
Definition: hydrocouplespatial.h:430
IRasterBand is a single raster band for an IRaster.
Definition: hydrocouplespatial.h:1202
IGeometryComponentItem represents IGeometryCollection IComponentItem. This class must be implemented ...
Definition: hydrocouplespatial.h:1380
virtual ~IRegularGrid2D()
Definition: hydrocouplespatial.h:1265
virtual ~IMultiPoint()
Definition: hydrocouplespatial.h:507
virtual ~IGeometry()
Definition: hydrocouplespatial.h:196
virtual ~IMultiCurve()
Definition: hydrocouplespatial.h:616
Complex Int32.
Definition: hydrocouplespatial.h:1148
An IMultiPolygon is an IMultiSurface whose elements are IPolygons.
Definition: hydrocouplespatial.h:975
The IVectorComponentDataItem class.
Definition: hydrocouplespatial.h:1751
virtual ~IRegularGrid2DComponentDataItem()
~IRegularGrid2DComponentItem.
Definition: hydrocouplespatial.h:1614
IDimension provides the properties of the dimensions of a vairable.
Definition: hydrocouple.h:888
An IRasterComponentDataItem represents an IRaster IComponentItem.
Definition: hydrocouplespatial.h:1530
Curvilinear grid.
Definition: hydrocouplespatial.h:1256
virtual ~IMultiLineString()
Definition: hydrocouplespatial.h:660
Definition: hydrocouplespatial.h:46
Spatial Reference System.
Definition: hydrocouplespatial.h:54
virtual ~IEdge()
Definition: hydrocouplespatial.h:696
Eight bit unsigned integer.
Definition: hydrocouplespatial.h:1132
virtual ~IPolyhedralSurface()
Definition: hydrocouplespatial.h:1061
virtual ~ITIN()
Definition: hydrocouplespatial.h:1108
virtual ~IRasterComponentDataItem()
Definition: hydrocouplespatial.h:1536
RegularGridType
The types of regular grids.
Definition: hydrocouplespatial.h:1249
virtual ~IGeometryComponentDataItem()
Definition: hydrocouplespatial.h:1387
An ILinearRing is an ILineString that is both isClosed() and isSimple().
Definition: hydrocouplespatial.h:679
IComponentItem is a fundamental unit of data for a component.
Definition: hydrocouple.h:1036
IGeometry is the root class of the geometry hierarchy.
Definition: hydrocouplespatial.h:107
Sixteen bit unsigned integer.
Definition: hydrocouplespatial.h:1134
Sixty four bit floating point.
Definition: hydrocouplespatial.h:1144
virtual ~IVertex()
Definition: hydrocouplespatial.h:523
virtual ~IEnvelope()
Definition: hydrocouplespatial.h:85
An IPolyhedralSurface is a contiguous collection of polygons, which share common boundary segments...
Definition: hydrocouplespatial.h:1057
A IPolygon is a planar ISurface defined by 1 exterior boundary and 0 or more interior boundaries...
Definition: hydrocouplespatial.h:936
Thirty two bit floating point.
Definition: hydrocouplespatial.h:1142
virtual ~ISurface()
Definition: hydrocouplespatial.h:841