23#ifndef HYDROCOUPLESPATIOTEMPORAL_H
24#define HYDROCOUPLESPATIOTEMPORAL_H
32 namespace SpatioTemporal
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;
66 const initializer_list<int> &dimensionIndexes = {})
const = 0;
82 const initializer_list<int> &dimensionIndexes = {},
83 int timeIndexLength = 1,
84 int geometryIndexLength = 1,
85 const initializer_list<int> &dimensionLengths = {})
const = 0;
98 const initializer_list<int> &dimensionIndexes = {}) = 0;
113 const initializer_list<int> &dimensionIndexes = {},
114 int timeIndexLength = 1,
115 int geometryIndexLength = 1,
116 const initializer_list<int> &dimensionLengths = {}) = 0;
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;
145 int timeDimensionIndex,
146 int edgeDimensionIndex,
147 int vertexDimensionIndex,
148 const initializer_list<int> &dimensionIndexes = {})
const = 0;
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;
184 int timeDimensionIndex,
185 int edgeDimensionIndex,
186 int vertexDimensionIndex,
187 const initializer_list<int> &dimensionIndexes = {}) = 0;
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;
221 using ITimeSeriesComponentDataItem::getValue;
222 using ITimeSeriesComponentDataItem::getValues;
223 using ITimeSeriesComponentDataItem::setValue;
224 using ITimeSeriesComponentDataItem::setValues;
226 using IPolyhedralSurfaceComponentDataItem::getValue;
227 using IPolyhedralSurfaceComponentDataItem::getValues;
228 using IPolyhedralSurfaceComponentDataItem::setValue;
229 using IPolyhedralSurfaceComponentDataItem::setValues;
247 int timeDimensionIndex,
248 int patchDimensionIndex,
249 int edgeDimensionIndex,
250 int vertexDimensionIndex,
251 const initializer_list<int> &dimensionIndexes = {})
const = 0;
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;
297 int timeDimensionIndex,
298 int patchDimensionIndex,
299 int edgeDimensionIndex,
300 int vertexDimensionIndex,
301 const initializer_list<int> &dimensionIndexes = {}) = 0;
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;
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;
382 int timeDimensionIndex,
386 const initializer_list<int> &dimensionIndexes = {})
const = 0;
405 int timeDimensionIndex,
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;
428 int timeDimensionIndex,
432 const initializer_list<int> &dimensionIndexes = {}) = 0;
451 int timeDimensionIndex,
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;
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;
502 const initializer_list<int> &dimensionIndexes = {})
const = 0;
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;
554 const initializer_list<int> &dimensionIndexes = {}) = 0;
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;
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;
630 const initializer_list<int> &dimensionIndexes = {})
const = 0;
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;
688 const initializer_list<int> &dimensionIndexes = {}) = 0;
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;
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