HydroCouple  1.0.0
Description of the HydroCouple Component-Based Model Coupling Interface Definitions
hydrocouplespatiotemporal.h
Go to the documentation of this file.
1 
23 #ifndef HYDROCOUPLESPATIOTEMPORAL_H
24 #define HYDROCOUPLESPATIOTEMPORAL_H
25 
26 #include "hydrocoupletemporal.h"
27 #include "hydrocouplespatial.h"
28 
29 namespace HydroCouple
30 {
32  namespace SpatioTemporal
33  {
38  {
39 
42 
43  public:
44 
49 
55 
60  virtual int geometryCount() const = 0;
61 
67  virtual HydroCouple::Spatial::IGeometry *geometry(int geometryIndex) const = 0;
68 
73  virtual HydroCouple::IDimension *geometryDimension() const = 0;
74 
79  virtual HydroCouple::Spatial::IEnvelope *envelope() const = 0;
80 
87  virtual void getValue(int timeIndex, int geometryIndex, void *data) const = 0;
88 
97  virtual void getValues(int timeIndex, int geometryIndex, int timeStride, int geomStride, void *data) const = 0;
98 
105  virtual void setValue(int timeIndex, int geometryIndex, const void *data) = 0;
106 
115  virtual void setValues(int timeIndex, int geometryIndex, int timeStride, int geomStride, const void *data) = 0;
116 
117  };
118 
124  {
127 
128  public:
129 
134 
139  virtual HydroCouple::Spatial::MeshDataType meshDataType() const = 0;
140 
144  virtual HydroCouple::Spatial::IPolyhedralSurface *polyhedralSurface() const = 0;
145 
149  virtual IDimension *cellDimension() const = 0;
150 
155  virtual IDimension *edgeDimension() const = 0;
156 
161  virtual IDimension *nodeDimension() const = 0;
162 
171  virtual void getValue(int timeIndex, int cellDimensionIndex, int edgeDimensionIndex, int nodeDimensionIndex, void *data) const = 0;
172 
181  virtual void setValue(int timeIndex, int cellDimensionIndex, int edgeDimensionIndex, int nodeDimensionIndex, const void *data) = 0;
182  };
183 
188  {
189  public:
190 
195 
199  virtual HydroCouple::Spatial::ITIN* TIN() const = 0;
200 
201  };
202 
207  {
210 
211  public:
212 
214 
218  virtual HydroCouple::Spatial::IRaster* raster() const = 0;
219 
223  virtual IDimension* xDimension() const = 0;
224 
228  virtual IDimension* yDimension() const = 0;
229 
233  virtual IDimension* bandDimension() const = 0;
234 
243  virtual void getValue(int timeIndex, int xIndex, int yIndex, int band, void *data) const = 0;
244 
257  virtual void getValues(int timeIndex, int xindex, int yindex,
258  int bandIndex, int timeStride, int xstride,
259  int ystride, int bandStride, void *data) const = 0;
260 
269  virtual void setValue(int timeIndex, int xIndex, int yIndex, int band, const void *data) = 0;
270 
283  virtual void setValues(int timeIndex,int xindex, int yindex,
284  int bandIndex, int timeStride, int xstride,
285  int ystride, int bandStride, const void *data) = 0;
286 
287  };
288 
293  {
296 
297  public:
298 
300 
304  virtual HydroCouple::Spatial::IRegularGrid2D *grid() const = 0;
305 
310  virtual HydroCouple::Spatial::MeshDataType meshDataType() const = 0;
311 
315  virtual IDimension *xCellDimension() const = 0;
316 
320  virtual IDimension *yCellDimension() const = 0;
321 
326  virtual IDimension *cellEdgeDimension() const = 0;
327 
332  virtual IDimension *cellNodeDimension() const = 0;
333 
343  virtual void getValue(int timeIndex, int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellNodeIndex, void *data) const = 0;
344 
345 
355  virtual void setValue(int timeIndex, int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellNodeIndex, const void *data) = 0;
356  };
357 
362  {
365 
366  public:
367 
369 
373  virtual HydroCouple::Spatial::IRegularGrid3D *grid() const = 0;
374 
379  virtual HydroCouple::Spatial::MeshDataType meshDataType() const = 0;
380 
384  virtual IDimension *xCellDimension() const = 0;
385 
389  virtual IDimension *yCellDimension() const = 0;
390 
394  virtual IDimension *zCellDimension() const = 0;
395 
400  virtual IDimension *cellFaceDimension() const = 0;
401 
406  virtual IDimension *cellNodeDimension() const = 0;
407 
418  virtual void getValue(int timeIndex, int xCellIndex, int yCellIndex, int zCellIndex,
419  int cellFaceIndex, int cellNodeIndex, void *data) const = 0;
420 
431  virtual void setValue(int timeIndex, int xCellIndex, int yCellIndex, int zCellIndex,
432  int cellFaceIndex, int cellNodeIndex, const void *data) = 0;
433 
434  };
435 
440  {
443 
444  public:
445 
447 
452  virtual int locationsCount() const = 0;
453 
459  virtual HydroCouple::Spatial::IPoint *location(int locationIndex) const = 0;
460 
465  virtual IDimension *locationsDimension() const = 0;
466 
472  virtual IDimension *spatialDimension() const = 0;
473 
481  virtual void getValue(int timeIndex, int locationIndex, int spatialIndex, void *data) const = 0;
482 
492  virtual void getValues(int timeIndex, int locationIndex, int spatialDimensionIndex,
493  int locationStride, int spatialDimensionStride, void *data) const = 0;
501  virtual void setValue(int timeIndex, int locationIndex, int spatialDimensionIndex, const void *data) = 0;
502 
512  virtual void setValues(int timeIndex, int locationIndex, int spatialDimensionIndex,
513  int locationStride, int spatialDimensionStride, const void *data) = 0;
514  };
515  }
516 }
517 
518 Q_DECLARE_INTERFACE(HydroCouple::SpatioTemporal::ITimeGeometryComponentDataItem, "HydroCouple::SpatioTemporal::ITimeGeometryComponentDataItem/1.0")
519 Q_DECLARE_INTERFACE(HydroCouple::SpatioTemporal::ITimeTINComponentDataItem, "HydroCouple::SpatioTemporal::ITimeTINComponentDataItem/1.0")
520 Q_DECLARE_INTERFACE(HydroCouple::SpatioTemporal::ITimePolyhedralSurfaceComponentDataItem, "HydroCouple::SpatioTemporal::ITimePolyhedralSurfaceComponentDataItem/1.0")
521 Q_DECLARE_INTERFACE(HydroCouple::SpatioTemporal::ITimeRasterComponentDataItem, "HydroCouple::SpatioTemporal::ITimeRasterComponentDataItem/1.0")
522 Q_DECLARE_INTERFACE(HydroCouple::SpatioTemporal::ITimeRegularGrid2DComponentDataItem, "HydroCouple::SpatioTemporal::ITimeRegularGrid2DComponentDataItem/1.0")
523 Q_DECLARE_INTERFACE(HydroCouple::SpatioTemporal::ITimeRegularGrid3DComponentDataItem, "HydroCouple::SpatioTemporal::ITimeRegularGrid2DExchangeItem/1.0")
524 Q_DECLARE_INTERFACE(HydroCouple::SpatioTemporal::ITimeVectorComponentDataItem, "HydroCouple::SpatioTemporal::ITimeVectorComponentDataItem/1.0")
525 
533 
534 #endif // HYDROCOUPLESPATIOTEMPORAL_H
535 
The ITimeRegularGrid3DComponentItem class.
Definition: hydrocouplespatiotemporal.h:361
ITimeGeometryComponentItem represents an IComponentItem with both temporal and geometric components...
Definition: hydrocouplespatiotemporal.h:37
virtual ~ITimeTINComponentDataItem()
~ITimeTINComponentItem.
Definition: hydrocouplespatiotemporal.h:194
The ITimeVectorComponentDataItem class.
Definition: hydrocouplespatiotemporal.h:439
virtual int geometryCount() const =0
geometryCount
virtual ~ITimePolyhedralSurfaceComponentDataItem()
~ITimePolyhedralSurfaceComponentItem.
Definition: hydrocouplespatiotemporal.h:133
virtual ~ITimeVectorComponentDataItem()
Definition: hydrocouplespatiotemporal.h:446
The ITimeRasterComponentDataItem class.
Definition: hydrocouplespatiotemporal.h:206
An ITIN is a triangulated irregular network IPolyhedralSurface consisting only of ITriangle patches...
Definition: hydrocouplespatial.h:1105
virtual HydroCouple::Spatial::IEnvelope * envelope() const =0
envelope
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 void setValue(const std::vector< int > &dimensionIndexes, const void *data)=0
Sets a multi-dimensional array of values for given dimension indexes.
An IPoint is a 0-dimensional geometric object and represents a single location in coordinate space...
Definition: hydrocouplespatial.h:462
virtual ~ITimeRegularGrid3DComponentDataItem()
Definition: hydrocouplespatiotemporal.h:368
GeometryType
The type of IGeometry.
Definition: hydrocouplespatial.h:114
virtual void getValues(int timeIndex, int geometryIndex, int timeStride, int geomStride, void *data) const =0
Gets a multi-dimensional array of values for given time dimension index and size for a hyperslab...
The ITINComponentItem class.
Definition: hydrocouplespatiotemporal.h:187
virtual HydroCouple::IDimension * geometryDimension() const =0
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...
virtual void getValue(int timeIndex, int geometryIndex, void *data) const =0
getValue
The IRegularGrid2D class.
Definition: hydrocouplespatial.h:1262
The IRegularGrid3D class.
Definition: hydrocouplespatial.h:1313
A Raster spatial feature.
Definition: hydrocouplespatial.h:1119
virtual void setValue(int timeIndex, int geometryIndex, const void *data)=0
setValues
The IEnvelope class.
Definition: hydrocouplespatial.h:82
virtual ~ITimeGeometryComponentDataItem()
~ITimeGeometryComponentItem.
Definition: hydrocouplespatiotemporal.h:48
virtual HydroCouple::Spatial::IGeometry::GeometryType geometryType() const =0
geometryType
The ITimePolyhedralSurfaceComponentItem class.
Definition: hydrocouplespatiotemporal.h:122
virtual HydroCouple::Spatial::IGeometry * geometry(int geometryIndex) const =0
geometry
IDimension provides the properties of the dimensions of a vairable.
Definition: hydrocouple.h:888
The ITimeRegularGrid2DComponentItem class.
Definition: hydrocouplespatiotemporal.h:292
virtual void setValues(int timeIndex, int geometryIndex, int timeStride, int geomStride, const void *data)=0
Sets a multi-dimensional array of values for given time dimension index and size for a hyperslab...
ITimeComponentItem is an IComponentItem with a temporal attribute. This class cannot be directly inst...
Definition: hydrocoupletemporal.h:95
virtual ~ITimeRasterComponentDataItem()
Definition: hydrocouplespatiotemporal.h:213
IGeometry is the root class of the geometry hierarchy.
Definition: hydrocouplespatial.h:107
virtual ~ITimeRegularGrid2DComponentDataItem()
Definition: hydrocouplespatiotemporal.h:299
An IPolyhedralSurface is a contiguous collection of polygons, which share common boundary segments...
Definition: hydrocouplespatial.h:1057