HydroCouple  2.0.0
HydroCouple Interface Definitions
Loading...
Searching...
No Matches
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
29namespace HydroCouple
30{
32 namespace SpatioTemporal
33 {
38 {
39
40 public:
41 using IGeometryComponentDataItem::getValue;
42 using IGeometryComponentDataItem::getValues;
43 using IGeometryComponentDataItem::setValue;
44 using IGeometryComponentDataItem::setValues;
45 using ITimeSeriesComponentDataItem::getValue;
46 using ITimeSeriesComponentDataItem::getValues;
47 using ITimeSeriesComponentDataItem::setValue;
48 using ITimeSeriesComponentDataItem::setValues;
49
54
62 virtual void getValue(
64 int timeIndex,
65 int geometryIndex,
66 const initializer_list<int> &dimensionIndexes = {}) const = 0;
67
78 virtual void getValues(
80 int timeIndex,
81 int geometryIndex,
82 const initializer_list<int> &dimensionIndexes = {},
83 int timeIndexLength = 1,
84 int geometryIndexLength = 1,
85 const initializer_list<int> &dimensionLengths = {}) const = 0;
86
94 virtual void setValue(
95 const hydrocouple_variant &data,
96 int timeIndex,
97 int geometryIndex,
98 const initializer_list<int> &dimensionIndexes = {}) = 0;
99
109 virtual void setValues(
110 const hydrocouple_variant *data,
111 int timeIndex,
112 int geometryIndex,
113 const initializer_list<int> &dimensionIndexes = {},
114 int timeIndexLength = 1,
115 int geometryIndexLength = 1,
116 const initializer_list<int> &dimensionLengths = {}) = 0;
117 };
118
123 {
124
125 public:
126 using INetworkComponentDataItem::getValue;
127 using INetworkComponentDataItem::getValues;
128 using INetworkComponentDataItem::setValue;
129 using INetworkComponentDataItem::setValues;
130 using ITimeSeriesComponentDataItem::getValue;
131 using ITimeSeriesComponentDataItem::getValues;
132 using ITimeSeriesComponentDataItem::setValue;
133 using ITimeSeriesComponentDataItem::setValues;
134
143 virtual void getValue(
145 int timeDimensionIndex,
146 int edgeDimensionIndex,
147 int vertexDimensionIndex,
148 const initializer_list<int> &dimensionIndexes = {}) const = 0;
149
163 virtual void getValues(
165 int timeDimensionIndex,
166 int edgeDimensionIndex,
167 int vertexDimensionIndex,
168 const initializer_list<int> &dimensionIndexes = {},
169 int timeDimensionIndexLength = 1,
170 int edgeDimensionIndexLength = 1,
171 int vertexDimensionIndexLength = 1,
172 const initializer_list<int> &dimensionLengths = {}) const = 0;
173
182 virtual void setValue(
183 const hydrocouple_variant &data,
184 int timeDimensionIndex,
185 int edgeDimensionIndex,
186 int vertexDimensionIndex,
187 const initializer_list<int> &dimensionIndexes = {}) = 0;
188
202 virtual void setValues(
203 const hydrocouple_variant *data,
204 int timeDimensionIndex,
205 int edgeDimensionIndex,
206 int vertexDimensionIndex,
207 const initializer_list<int> &dimensionIndexes = {},
208 int timeDimensionIndexLength = 1,
209 int edgeDimensionIndexLength = 1,
210 int vertexDimensionIndexLength = 1,
211 const initializer_list<int> &dimensionLengths = {}) = 0;
212 };
213
218 {
219
220 public:
221 using ITimeSeriesComponentDataItem::getValue;
222 using ITimeSeriesComponentDataItem::getValues;
223 using ITimeSeriesComponentDataItem::setValue;
224 using ITimeSeriesComponentDataItem::setValues;
225
226 using IPolyhedralSurfaceComponentDataItem::getValue;
227 using IPolyhedralSurfaceComponentDataItem::getValues;
228 using IPolyhedralSurfaceComponentDataItem::setValue;
229 using IPolyhedralSurfaceComponentDataItem::setValues;
230
235
245 virtual void getValue(
247 int timeDimensionIndex,
248 int patchDimensionIndex,
249 int edgeDimensionIndex,
250 int vertexDimensionIndex,
251 const initializer_list<int> &dimensionIndexes = {}) const = 0;
252
272 virtual void getValues(
274 int timeDimensionIndex,
275 int patchDimensionIndex,
276 int edgeDimensionIndex,
277 int vertexDimensionIndex,
278 const initializer_list<int> &dimensionIndexes = {},
279 int timeDimensionIndexLength = 1,
280 int patchDimensionIndexLength = 1,
281 int edgeDimensionIndexLength = 1,
282 int vertexDimensionIndexLength = 1,
283 const initializer_list<int> &dimensionLengths = {}) const = 0;
284
295 virtual void setValue(
296 const hydrocouple_variant &data,
297 int timeDimensionIndex,
298 int patchDimensionIndex,
299 int edgeDimensionIndex,
300 int vertexDimensionIndex,
301 const initializer_list<int> &dimensionIndexes = {}) = 0;
302
318 virtual void setValues(
319 const hydrocouple_variant *data,
320 int timeDimensionIndex,
321 int patchDimensionIndex,
322 int edgeDimensionIndex,
323 int vertexDimensionIndex,
324 const initializer_list<int> &dimensionIndexes = {},
325 int timeDimensionIndexLength = 1,
326 int patchDimensionIndexLength = 1,
327 int edgeDimensionIndexLength = 1,
328 int vertexDimensionIndexLength = 1,
329 const initializer_list<int> &dimensionLengths) = 0;
330 };
331
336 {
337 public:
342
346 virtual HydroCouple::Spatial::ITIN *TIN() const = 0;
347 };
348
353 {
354
355 public:
356 using IRasterComponentDataItem::getValue;
357 using IRasterComponentDataItem::getValues;
358 using IRasterComponentDataItem::setValue;
359 using IRasterComponentDataItem::setValues;
360 using ITimeSeriesComponentDataItem::getValue;
361 using ITimeSeriesComponentDataItem::getValues;
362 using ITimeSeriesComponentDataItem::setValue;
363 using ITimeSeriesComponentDataItem::setValues;
364
369
380 virtual void getValue(
382 int timeDimensionIndex,
383 int xIndex,
384 int yIndex,
385 int bandIndex,
386 const initializer_list<int> &dimensionIndexes = {}) const = 0;
387
403 virtual void getValues(
405 int timeDimensionIndex,
406 int xIndex,
407 int yIndex,
408 int bandIndex,
409 const initializer_list<int> &dimensionIndexes = {},
410 int timeDimensionIndexLength = 1,
411 int xIndexLength = 1,
412 int yIndexLength = 1,
413 int bandIndexLength = 1,
414 const initializer_list<int> &dimensionLengths = {}) const = 0;
415
426 virtual void setValue(
427 const hydrocouple_variant &data,
428 int timeDimensionIndex,
429 int xIndex,
430 int yIndex,
431 int band,
432 const initializer_list<int> &dimensionIndexes = {}) = 0;
433
449 virtual void setValues(
450 const hydrocouple_variant *data,
451 int timeDimensionIndex,
452 int xIndex,
453 int yIndex,
454 int bandIndex,
455 const initializer_list<int> &dimensionIndexes = {},
456 int timeDimensionIndexLength = 1,
457 int xIndexLength = 1,
458 int yIndexLength = 1,
459 int bandIndexLength = 1,
460 const initializer_list<int> &dimensionLengths = {}) = 0;
461 };
462
467 {
468
469 public:
470 using IRegularGrid2DComponentDataItem::getValue;
471 using IRegularGrid2DComponentDataItem::getValues;
472 using IRegularGrid2DComponentDataItem::setValue;
473 using IRegularGrid2DComponentDataItem::setValues;
474 using ITimeSeriesComponentDataItem::getValue;
475 using ITimeSeriesComponentDataItem::getValues;
476 using ITimeSeriesComponentDataItem::setValue;
477 using ITimeSeriesComponentDataItem::setValues;
478
483
495 virtual void getValue(
497 int timeIndex,
498 int xCellIndex,
499 int yCellIndex,
500 int cellEdgeIndex,
501 int cellVertexIndex,
502 const initializer_list<int> &dimensionIndexes = {}) const = 0;
503
521 virtual void getValues(
523 int timeIndex,
524 int xCellIndex,
525 int yCellIndex,
526 int cellEdgeIndex,
527 int cellVertexIndex,
528 const initializer_list<int> &dimensionIndexes = {},
529 int timeIndexLength = 1,
530 int xCellIndexLength = 1,
531 int yCellIndexLength = 1,
532 int cellEdgeIndexLength = 1,
533 int cellVertexIndexLength = 1,
534 const initializer_list<int> &dimensionLengths = {}) const = 0;
535
547 virtual void setValue(
548 const hydrocouple_variant &data,
549 int timeIndex,
550 int xCellIndex,
551 int yCellIndex,
552 int cellEdgeIndex,
553 int cellVertexIndex,
554 const initializer_list<int> &dimensionIndexes = {}) = 0;
555
573 virtual void setValues(
574 const hydrocouple_variant *data,
575 int timeIndex,
576 int xCellIndex,
577 int yCellIndex,
578 int cellEdgeIndex,
579 int cellVertexIndex,
580 const initializer_list<int> &dimensionIndexes = {},
581 int timeIndexLength = 1,
582 int xCellIndexLength = 1,
583 int yCellIndexLength = 1,
584 int cellEdgeIndexLength = 1,
585 int cellVertexIndexLength = 1,
586 const initializer_list<int> &dimensionLengths = {}) = 0;
587 };
588
593 {
594
595 public:
596 using IRegularGrid3DComponentDataItem::getValue;
597 using IRegularGrid3DComponentDataItem::getValues;
598 using IRegularGrid3DComponentDataItem::setValue;
599 using IRegularGrid3DComponentDataItem::setValues;
600 using ITimeSeriesComponentDataItem::getValue;
601 using ITimeSeriesComponentDataItem::getValues;
602 using ITimeSeriesComponentDataItem::setValue;
603 using ITimeSeriesComponentDataItem::setValues;
604
609
622 virtual void getValue(
624 int timeIndex,
625 int xCellIndex,
626 int yCellIndex,
627 int zCellIndex,
628 int cellFaceIndex,
629 int cellVertexIndex,
630 const initializer_list<int> &dimensionIndexes = {}) const = 0;
631
651 virtual void getValues(
653 int timeIndex,
654 int xCellIndex,
655 int yCellIndex,
656 int zCellIndex,
657 int cellFaceIndex,
658 int cellVertexIndex,
659 const initializer_list<int> &dimensionIndexes = {},
660 int timeIndexLength = 1,
661 int xCellIndexLength = 1,
662 int yCellIndexLength = 1,
663 int zCellIndexLength = 1,
664 int cellFaceIndexLength = 1,
665 int cellVertexIndexLength = 1,
666 const initializer_list<int> &dimensionLengths = {}) const = 0;
667
680 virtual void setValue(
681 const hydrocouple_variant &data,
682 int timeIndex,
683 int xCellIndex,
684 int yCellIndex,
685 int zCellIndex,
686 int cellFaceIndex,
687 int cellVertexIndex,
688 const initializer_list<int> &dimensionIndexes = {}) = 0;
689
709 virtual void setValues(
710 const hydrocouple_variant *data,
711 int timeIndex,
712 int xCellIndex,
713 int yCellIndex,
714 int zCellIndex,
715 int cellFaceIndex,
716 int cellVertexIndex,
717 const initializer_list<int> &dimensionIndexes = {},
718 int timeIndexLength = 1,
719 int xCellIndexLength = 1,
720 int yCellIndexLength = 1,
721 int zCellIndexLength = 1,
722 int cellFaceIndexLength = 1,
723 int cellVertexIndexLength = 1,
724 const initializer_list<int> &dimensionLengths = {}) = 0;
725 };
726 }
727}
728#endif // HYDROCOUPLESPATIOTEMPORAL_H
IGeometryComponentItem represents IGeometryCollection IComponentItem. This class must be implemented ...
Definition hydrocouplespatial.h:1562
The INetworkComponentDataItem class.
Definition hydrocouplespatial.h:1665
IPolyhedralSurfaceComponentItem represents IPolyhedralSurface IComponentItem.
Definition hydrocouplespatial.h:1779
An IRasterComponentDataItem represents an IRaster IComponentItem.
Definition hydrocouplespatial.h:1943
An IRegularGrid2DComponentDataItem represents an IRegularGrid2D IComponentItem.
Definition hydrocouplespatial.h:2061
An IRegularGrid3DComponentItem represents an IRegularGrid3D IComponentItem.
Definition hydrocouplespatial.h:2207
An ITIN is a triangulated irregular network IPolyhedralSurface consisting only of ITriangle patches.
Definition hydrocouplespatial.h:1273
ITimeGeometryComponentItem represents an IComponentItem with both temporal and geometric components.
Definition hydrocouplespatiotemporal.h:38
virtual void setValue(const hydrocouple_variant &data, int timeIndex, int geometryIndex, const initializer_list< int > &dimensionIndexes={})=0
setValues Sets the value for given time dimension index and geometry dimension index.
virtual void setValues(const hydrocouple_variant *data, int timeIndex, int geometryIndex, const initializer_list< int > &dimensionIndexes={}, int timeIndexLength=1, int geometryIndexLength=1, const initializer_list< int > &dimensionLengths={})=0
Sets a multi-dimensional array of values for given time dimension index and size for a hyperslab.
virtual void getValue(hydrocouple_variant &data, int timeIndex, int geometryIndex, const initializer_list< int > &dimensionIndexes={}) const =0
getValue Gets the value for given time dimension index and geometry dimension index.
virtual void getValues(hydrocouple_variant *data, int timeIndex, int geometryIndex, const initializer_list< int > &dimensionIndexes={}, int timeIndexLength=1, int geometryIndexLength=1, const initializer_list< int > &dimensionLengths={}) const =0
Gets a multi-dimensional array of values for given time dimension index and size for a hyperslab.
virtual ~ITimeGeometryComponentDataItem()=default
~ITimeGeometryComponentItem.
The ITimeNetworkComponentDataItem class.
Definition hydrocouplespatiotemporal.h:123
virtual void getValues(hydrocouple_variant *data, int timeDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, int timeDimensionIndexLength=1, int edgeDimensionIndexLength=1, int vertexDimensionIndexLength=1, const initializer_list< int > &dimensionLengths={}) const =0
getValues for given edge dimension index and node dimension index and size for a hyperslab.
virtual void setValue(const hydrocouple_variant &data, int timeDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={})=0
setValue for given edge dimension index and node dimension index and data.
virtual void getValue(hydrocouple_variant &data, int timeDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}) const =0
getValue for given edge dimension index and node dimension index.
virtual void setValues(const hydrocouple_variant *data, int timeDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, int timeDimensionIndexLength=1, int edgeDimensionIndexLength=1, int vertexDimensionIndexLength=1, const initializer_list< int > &dimensionLengths={})=0
setValues for given edge dimension index and node dimension index and size for a hyperslab.
The ITimeRegularGrid2DComponentItem class.
Definition hydrocouplespatiotemporal.h:467
virtual ~ITimeRegularGrid2DComponentDataItem()=default
~ITimeRegularGrid2DComponentItem. Destructor.
virtual void setValue(const hydrocouple_variant &data, int timeIndex, int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={})=0
setValue for given x cell index, y cell index, edge index, and node index.
virtual void setValues(const hydrocouple_variant *data, int timeIndex, int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, int timeIndexLength=1, int xCellIndexLength=1, int yCellIndexLength=1, int cellEdgeIndexLength=1, int cellVertexIndexLength=1, const initializer_list< int > &dimensionLengths={})=0
setValues for given x cell index, y cell index, edge index, and node index and size for a hyperslab.
virtual void getValues(hydrocouple_variant *data, int timeIndex, int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, int timeIndexLength=1, int xCellIndexLength=1, int yCellIndexLength=1, int cellEdgeIndexLength=1, int cellVertexIndexLength=1, const initializer_list< int > &dimensionLengths={}) const =0
getValues for given x cell index, y cell index, edge index, and node index and size for a hyperslab.
virtual void getValue(hydrocouple_variant &data, int timeIndex, int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}) const =0
getValue for given x cell index, y cell index, edge index, and node index.
The ITimeRegularGrid3DComponentItem class.
Definition hydrocouplespatiotemporal.h:593
virtual ~ITimeRegularGrid3DComponentDataItem()=default
~ITimeRegularGrid3DComponentItem. Destructor.
virtual void getValues(hydrocouple_variant *data, int timeIndex, int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, int timeIndexLength=1, int xCellIndexLength=1, int yCellIndexLength=1, int zCellIndexLength=1, int cellFaceIndexLength=1, int cellVertexIndexLength=1, const initializer_list< int > &dimensionLengths={}) const =0
getValues for given x cell index, y cell index, z cell index, face index, and node index and size for...
virtual void setValue(const hydrocouple_variant &data, int timeIndex, int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={})=0
setValue for given x cell index, y cell index, z cell index, face index, and node index.
virtual void getValue(hydrocouple_variant &data, int timeIndex, int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}) const =0
getValue for given x cell index, y cell index, z cell index, face index, and node index.
virtual void setValues(const hydrocouple_variant *data, int timeIndex, int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, int timeIndexLength=1, int xCellIndexLength=1, int yCellIndexLength=1, int zCellIndexLength=1, int cellFaceIndexLength=1, int cellVertexIndexLength=1, const initializer_list< int > &dimensionLengths={})=0
setValues for given x cell index, y cell index, z cell index, face index, and node index and size for...
The ITimeSeriesPolyhedralSurfaceComponentDataItem class.
Definition hydrocouplespatiotemporal.h:218
virtual void setValues(const hydrocouple_variant *data, int timeDimensionIndex, int patchDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, int timeDimensionIndexLength=1, int patchDimensionIndexLength=1, int edgeDimensionIndexLength=1, int vertexDimensionIndexLength=1, const initializer_list< int > &dimensionLengths)=0
setValues for given cell dimension index, edge dimension index, and node dimension index and size for...
virtual void setValue(const hydrocouple_variant &data, int timeDimensionIndex, int patchDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={})=0
setValues for given cell dimension index, edge dimension index, and node dimension index.
virtual ~ITimeSeriesPolyhedralSurfaceComponentDataItem()=default
~ITimePolyhedralSurfaceComponentItem.
virtual void getValue(hydrocouple_variant &data, int timeDimensionIndex, int patchDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}) const =0
getValue for given cell dimension index, edge dimension index, and node dimension index.
virtual void getValues(hydrocouple_variant *data, int timeDimensionIndex, int patchDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, int timeDimensionIndexLength=1, int patchDimensionIndexLength=1, int edgeDimensionIndexLength=1, int vertexDimensionIndexLength=1, const initializer_list< int > &dimensionLengths={}) const =0
getValues for given cell dimension index, edge dimension index and node dimension index and size for ...
The ITimeRasterComponentDataItem class.
Definition hydrocouplespatiotemporal.h:353
virtual void setValues(const hydrocouple_variant *data, int timeDimensionIndex, int xIndex, int yIndex, int bandIndex, const initializer_list< int > &dimensionIndexes={}, int timeDimensionIndexLength=1, int xIndexLength=1, int yIndexLength=1, int bandIndexLength=1, const initializer_list< int > &dimensionLengths={})=0
Sets a multi-dimensional array of values for given dimension for a hyperslab.
virtual void getValues(hydrocouple_variant *data, int timeDimensionIndex, int xIndex, int yIndex, int bandIndex, const initializer_list< int > &dimensionIndexes={}, int timeDimensionIndexLength=1, int xIndexLength=1, int yIndexLength=1, int bandIndexLength=1, const initializer_list< int > &dimensionLengths={}) const =0
Gets a multi-dimensional array of values for given dimension for a hyperslab.
virtual void setValue(const hydrocouple_variant &data, int timeDimensionIndex, int xIndex, int yIndex, int band, const initializer_list< int > &dimensionIndexes={})=0
setValue for given x dimension index, y dimension index, and band dimension index.
virtual void getValue(hydrocouple_variant &data, int timeDimensionIndex, int xIndex, int yIndex, int bandIndex, const initializer_list< int > &dimensionIndexes={}) const =0
getValue for given x dimension index, y dimension index, and band dimension index.
virtual ~ITimeSeriesRasterComponentDataItem()=default
~ITimeSeriesRasterComponentDataItem Destructor.
The ITINComponentItem class.
Definition hydrocouplespatiotemporal.h:336
virtual HydroCouple::Spatial::ITIN * TIN() const =0
virtual ~ITimeSeriesTINComponentDataItem()=default
~ITimeTINComponentItem.
ITimeComponentItem is an IComponentItem with a temporal attribute. This class cannot be directly inst...
Definition hydrocoupletemporal.h:113
HydroCouple namespace contains the core interface specifications for the HydroCouple component-based ...
Definition hydrocouple.h:60
variant< bool, char, short, int, long, unsigned char, unsigned short, unsigned int, unsigned long, float, double, long double, string, void * > hydrocouple_variant
hydrocouple_variant is a variant type that can be used to store the core value types values of differ...
Definition hydrocouple.h:96