23#ifndef HYDROCOUPLESPATIAL_H
24#define HYDROCOUPLESPATIAL_H
179 virtual double minX()
const = 0;
185 virtual double maxX()
const = 0;
191 virtual double minY()
const = 0;
197 virtual double maxY()
const = 0;
203 virtual double minZ()
const = 0;
209 virtual double maxZ()
const = 0;
309 virtual string id()
const = 0;
315 virtual unsigned int index()
const = 0;
363 virtual unsigned char *
getWKB(
int &size)
const = 0;
581 virtual double x()
const = 0;
586 virtual double y()
const = 0;
591 virtual double z()
const = 0;
596 virtual double m()
const = 0;
642 virtual unsigned int index()
const = 0;
830 virtual unsigned int index()
const = 0;
976 virtual double area()
const = 0;
1406 virtual void read(
int xOffset,
int yOffset,
int xSize,
int ySize,
void *image)
const = 0;
1416 virtual void write(
int xOffset,
int yOffset,
int xSize,
int ySize,
const void *image) = 0;
1480 virtual bool isActive(
int xCellIndex,
int yCellIndex)
const = 0;
1546 virtual double zNodeLocation(
int xNodeIndex,
int yNodeIndex,
int zNodeIndex)
const = 0;
1555 virtual bool isActive(
int xCellIndex,
int yCellIndex,
int zCellIndex)
const = 0;
1614 int geometryDimensionIndex,
1615 const initializer_list<int> &dimensionIndexes = {})
const = 0;
1628 int geometryDimensionIndex,
1629 const initializer_list<int> &dimensionIndexes = {},
1630 int geometryDimensionLength = 1,
1641 int geometryDimensionIndex,
1642 const initializer_list<int> &dimensionIndexes = {}) = 0;
1655 int geometryDimensionIndex,
1656 const initializer_list<int> &dimensionIndexes = {},
1657 int geometryDimensionLength = 1,
1658 const initializer_list<int> &dimensionLengths = {}) = 0;
1717 int edgeDimensionIndex,
1718 int vertexDimensionIndex,
1719 const initializer_list<int> &dimensionIndexes = {})
const = 0;
1734 int edgeDimensionIndex,
1735 int vertexDimensionIndex,
1736 const initializer_list<int> &dimensionIndexes = {},
1737 int edgeDimensionIndexLength = 1,
1738 int vertexDimensionIndexLength = 1,
1739 const initializer_list<int> &dimensionLengths = {})
const = 0;
1750 int edgeDimensionIndex,
1751 int vertexDimensionIndex,
1752 const initializer_list<int> &dimensionIndexes = {}) = 0;
1767 int edgeDimensionIndex,
1768 int vertexDimensionIndex,
1769 const initializer_list<int> &dimensionIndexes = {},
1770 int edgeDimensionIndexLength = 1,
1771 int vertexDimensionIndexLength = 1,
1772 const initializer_list<int> &dimensionLengths = {}) = 0;
1837 int patchDimensionIndex,
1838 int edgeDimensionIndex,
1839 int vertexDimensionIndex,
1840 const initializer_list<int> &dimensionIndexes = {})
const = 0;
1861 int patchDimensionIndex,
1862 int edgeDimensionIndex,
1863 int vertexDimensionIndex,
1864 const initializer_list<int> &dimensionIndexes = {},
1865 int patchDimensionIndexLength = 1,
1866 int edgeDimensionIndexLength = 1,
1867 int vertexDimensionIndexLength = 1,
1868 const initializer_list<int> &dimensionLengths = {})
const = 0;
1881 int patchDimensionIndex,
1882 int edgeDimensionIndex,
1883 int vertexDimensionIndex,
1884 const initializer_list<int> &dimensionIndexes = {}) = 0;
1901 int patchDimensionIndex,
1902 int edgeDimensionIndex,
1903 int vertexDimensionIndex,
1904 const initializer_list<int> &dimensionIndexes = {},
1905 int patchDimensionIndexLength = 1,
1906 int edgeDimensionIndexLength = 1,
1907 int vertexDimensionIndexLength = 1,
1908 const initializer_list<int> &dimensionLengths) = 0;
1990 const initializer_list<int> &dimensionIndexes = {})
const = 0;
2010 const initializer_list<int> &dimensionIndexes = {},
2011 int xIndexLength = 1,
2012 int yIndexLength = 1,
2013 int bandIndexLength = 1,
2014 const initializer_list<int> &dimensionLengths = {})
const = 0;
2030 const initializer_list<int> &dimensionIndexes = {}) = 0;
2050 const initializer_list<int> &dimensionIndexes = {},
2051 int xIndexLength = 1,
2052 int yIndexLength = 1,
2053 int bandIndexLength = 1,
2054 const initializer_list<int> &dimensionLengths = {}) = 0;
2125 int cellVertexIndex,
2126 const initializer_list<int> &dimensionIndexes = {})
const = 0;
2148 int cellVertexIndex,
2149 const initializer_list<int> &dimensionIndexes = {},
2150 int xCellIndexLength = 1,
2151 int yCellIndexLength = 1,
2152 int cellEdgeIndexLength = 1,
2153 int cellVertexIndexLength = 1,
2154 const initializer_list<int> &dimensionLengths = {})
const = 0;
2171 int cellVertexIndex,
2172 const initializer_list<int> &dimensionIndexes = {}) = 0;
2194 int cellVertexIndex,
2195 const initializer_list<int> &dimensionIndexes = {},
2196 int xCellIndexLength = 1,
2197 int yCellIndexLength = 1,
2198 int cellEdgeIndexLength = 1,
2199 int cellVertexIndexLength = 1,
2200 const initializer_list<int> &dimensionLengths = {}) = 0;
2275 int cellVertexIndex,
2276 const initializer_list<int> &dimensionIndexes = {})
const = 0;
2301 int cellVertexIndex,
2302 const initializer_list<int> &dimensionIndexes = {},
2303 int xCellIndexLength = 1,
2304 int yCellIndexLength = 1,
2305 int zCellIndexLength = 1,
2306 int cellFaceIndexLength = 1,
2307 int cellVertexIndexLength = 1,
2308 const initializer_list<int> &dimensionLengths = {})
const = 0;
2327 int cellVertexIndex,
2328 const initializer_list<int> &dimensionIndexes = {}) = 0;
2353 int cellVertexIndex,
2354 const initializer_list<int> &dimensionIndexes = {},
2355 int xCellIndexLength = 1,
2356 int yCellIndexLength = 1,
2357 int zCellIndexLength = 1,
2358 int cellFaceIndexLength = 1,
2359 int cellVertexIndexLength = 1,
2360 const initializer_list<int> &dimensionLengths = {}) = 0;
IComponentItem is a fundamental unit of data for a component.
Definition hydrocouple.h:1316
virtual void setValue(const hydrocouple_variant &data, const initializer_list< int > &dimensionIndexes)=0
Sets a multi-dimensional array of values for given dimension indexes.
virtual void getValue(hydrocouple_variant &data, const initializer_list< int > &dimensionIndexes) const =0
Gets a multi-dimensional array of values for given dimension indexes and strides along each dimension...
virtual void getValues(hydrocouple_variant *data, const initializer_list< int > &dimensionIndexes, const initializer_list< int > &dimensionLengths={}) const =0
Gets a multi-dimensional array of values for given dimension indexes and strides along each dimension...
virtual void setValues(const hydrocouple_variant *data, const initializer_list< int > &dimensionIndexes, const initializer_list< int > &dimensionLengths={})=0
Sets a multi-dimensional array of values for given dimension indexes and strides along each dimension...
virtual int dimensionLength(const initializer_list< int > &dimensionIndexes={}) const =0
dimensionLength returns the length of the dimension specified by the given dimension indexes....
IDimension provides the properties of the dimensions of a variable.
Definition hydrocouple.h:941
IIdentity interface class defines a method to get the Id of an HydroCouple entity.
Definition hydrocouple.h:226
DistanceUnits
HydroCouple::DistanceUnits are the types of units that can be used to measure distance.
Definition hydrocouple.h:1128
A Curve is a 1-dimensional geometric object usually stored as a sequence of IPoints,...
Definition hydrocouplespatial.h:676
virtual IPoint * endPoint() const =0
The end IPoint of this ICurve.
virtual IPoint * startPoint() const =0
The start IPoint of this ICurve.
virtual bool isClosed() const =0
virtual double length() const =0
The length of this ICurve in its associated ISpatialReferenceSystem.
virtual bool isRing() const =0
virtual ~ICurve()=default
ICurve destructor.
A directed edge from one vertex to another, adjacent to two faces. Based on Dani Lischinski's code fr...
Definition hydrocouplespatial.h:819
virtual IPolygon * right()=0
The right face of this edge.
virtual IPolygon * face()=0
The target face of this edge, if dual. Otherwise null if not dual.
virtual ~IEdge()=default
IEdge destructor.
virtual IPolygon * left()=0
The left face of this edge.
virtual unsigned int index() const =0
unique index identifier
virtual IEdge * sym()=0
The IEdge from the destination to the origin of this IEdge.
virtual IEdge * rot()=0
The dual of this edge, directed from its right to its left.
virtual IEdge * destPrev()=0
The next cw edge around (into) the destination of this edge.
virtual IEdge * origPrev()=0
The next cw edge around (from) the origin of this edge.
virtual IEdge * leftNext()=0
The ccw edge around the left face following this edge.
virtual IEdge * leftPrev()=0
The ccw edge around the left face before this edge.
virtual IEdge * rightPrev()=0
The IEdge around the right face ccw before this IEdge.
virtual IEdge * invRot()=0
The dual of this IEdge, directed from its left to its right.
virtual IVertex * dest()=0
The destination IVertex of this IEdge.
virtual IVertex * orig()=0
The origin IVertex of this IEdge.
virtual IEdge * destNext()=0
The next ccw edge around (into) the destination of this edge.
virtual IEdge * rightNext()=0
The edge around the right face ccw following this edge.
virtual IEdge * origNext()=0
The next ccw edge around (from) the origin of this IEdge.
The IEnvelope class.
Definition hydrocouplespatial.h:168
virtual double maxZ() const =0
maxZ The maximum z-coordinate value for this IEnvelope.
virtual double minZ() const =0
minZ The minimum z-coordinate value for this IEnvelope.
virtual double maxY() const =0
maxY The maximum y-coordinate value for this IEnvelope.
virtual double minX() const =0
minX The minimum x-coordinate value for this IEnvelope.
virtual ~IEnvelope()=default
The minimum x-coordinate value for this IEnvelope.
virtual double minY() const =0
minY The minimum y-coordinate value for this IEnvelope.
virtual double maxX() const =0
maxX The maximum x-coordinate value for this IEnvelope.
An IGeometryCollection is a geometric object that is a collection of some number of IGeometry objects...
Definition hydrocouplespatial.h:538
virtual int geometryCount() const =0
The number of geometries in this IGeometryCollection.
virtual ~IGeometryCollection()=default
IGeometryCollection destructor.
virtual IGeometry * geometry(int index) const =0
The IGeometry object associated with a specified index.
IGeometryComponentItem represents IGeometryCollection IComponentItem. This class must be implemented ...
Definition hydrocouplespatial.h:1562
virtual IGeometry::GeometryType geometryType() const =0
geometryType
virtual HydroCouple::IDimension * geometryDimension() const =0
virtual HydroCouple::Spatial::IEnvelope * envelope() const =0
envelope
virtual void getValues(hydrocouple_variant *data, int geometryDimensionIndex, const initializer_list< int > &dimensionIndexes={}, int geometryDimensionLength=1, const initializer_list< int > &dimensionLength={}) const =0
Gets a multi-dimensional array of values for given geometry dimension index and size for a hyperslab.
virtual int geometryCount() const =0
geometryCount
virtual IGeometry * geometry(int geometryIndex) const =0
geometry
virtual void setValues(const hydrocouple_variant *data, int geometryDimensionIndex, const initializer_list< int > &dimensionIndexes={}, int geometryDimensionLength=1, const initializer_list< int > &dimensionLengths={})=0
Sets a multi-dimensional array of values for given geometry dimension index and size for a hyperslab.
virtual void getValue(hydrocouple_variant &data, int geometryDimensionIndex, const initializer_list< int > &dimensionIndexes={}) const =0
Gets value for given geometry dimension index.
virtual void setValue(const hydrocouple_variant *data, int geometryDimensionIndex, const initializer_list< int > &dimensionIndexes={})=0
Sets value for given geometry dimension index.
virtual ~IGeometryComponentDataItem()=default
IGeometryComponentItem destructor.
IGeometry is the root class of the geometry hierarchy.
Definition hydrocouplespatial.h:216
virtual unsigned char * getWKB(int &size) const =0
Exports this geometric object to a specific Well-known byte Representation of Geometry.
virtual ~IGeometry()=default
The type of IGeometry.
virtual IGeometry * intersection(const IGeometry &geom) const =0
virtual bool is3D() const =0
virtual bool touches(const IGeometry &geom) 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 th...
virtual bool intersects(const IGeometry &geom) const =0
virtual string id() const =0
id of the geometry.
virtual bool equals(const IGeometry &geom) const =0
virtual bool overlaps(const IGeometry &geom) const =0
virtual bool relate(const IGeometry &geom) const =0
virtual bool isEmpty() const =0
If true, then this geometric object represents the empty point set ∅ for the coordinate space.
virtual bool disjoint(const IGeometry &geom) const =0
virtual IGeometry * buffer(double bufferDistance) const =0
Returns a geometric object that represents all Points whose distance from this geometric object is le...
virtual ISpatialReferenceSystem * spatialReferenceSystem() const =0
Spatial reference system of geometric object.
virtual string getWKT() const =0
Exports this geometric object to a specific Well-known Text Representation of Geometry.
virtual int dimension() const =0
The inherent dimension of this geometric object, which must be less than or equal to the coordinate d...
virtual bool isSimple() const =0
Returns true if this geometric object has no anomalous geometric points, such as self intersection or...
virtual IGeometry * unionG(const IGeometry &geom) const =0
GeometryType
The type of IGeometry.
Definition hydrocouplespatial.h:222
@ CurvePolygonZ
Definition hydrocouplespatial.h:253
@ PolyhedralSurfaceM
Definition hydrocouplespatial.h:277
@ CircularString
Definition hydrocouplespatial.h:232
@ CurvePolygonM
Definition hydrocouplespatial.h:272
@ MultiSurfaceM
Definition hydrocouplespatial.h:274
@ PolygonM
Definition hydrocouplespatial.h:264
@ CurvePolygonZM
Definition hydrocouplespatial.h:291
@ GeometryZ
Definition hydrocouplespatial.h:242
@ TriangleZM
Definition hydrocouplespatial.h:284
@ MultiPointM
Definition hydrocouplespatial.h:266
@ SurfaceZ
Definition hydrocouplespatial.h:257
@ GeometryCollectionM
Definition hydrocouplespatial.h:269
@ SurfaceZM
Definition hydrocouplespatial.h:295
@ MultiLineStringM
Definition hydrocouplespatial.h:267
@ GeometryCollectionZM
Definition hydrocouplespatial.h:288
@ GeometryM
Definition hydrocouplespatial.h:261
@ TINM
Definition hydrocouplespatial.h:278
@ MultiSurfaceZ
Definition hydrocouplespatial.h:255
@ GeometryZM
Definition hydrocouplespatial.h:280
@ MultiPoint
Definition hydrocouplespatial.h:228
@ TINZM
Definition hydrocouplespatial.h:297
@ CompoundCurveM
Definition hydrocouplespatial.h:271
@ PolygonZM
Definition hydrocouplespatial.h:283
@ MultiPointZM
Definition hydrocouplespatial.h:285
@ LineStringZM
Definition hydrocouplespatial.h:282
@ MultiPointZ
Definition hydrocouplespatial.h:247
@ CurveM
Definition hydrocouplespatial.h:275
@ CompoundCurve
Definition hydrocouplespatial.h:233
@ MultiCurveZ
Definition hydrocouplespatial.h:254
@ TriangleZ
Definition hydrocouplespatial.h:246
@ GeometryCollectionZ
Definition hydrocouplespatial.h:250
@ LineString
Definition hydrocouplespatial.h:225
@ MultiSurface
Definition hydrocouplespatial.h:236
@ MultiPolygonM
Definition hydrocouplespatial.h:268
@ Triangle
Definition hydrocouplespatial.h:227
@ PolyhedralSurfaceZ
Definition hydrocouplespatial.h:258
@ PolyhedralSurface
Definition hydrocouplespatial.h:239
@ Surface
Definition hydrocouplespatial.h:238
@ CurvePolygon
Definition hydrocouplespatial.h:234
@ LineStringZ
Definition hydrocouplespatial.h:244
@ MultiPolygon
Definition hydrocouplespatial.h:230
@ MultiLineStringZ
Definition hydrocouplespatial.h:248
@ CompoundCurveZM
Definition hydrocouplespatial.h:290
@ MultiPolygonZ
Definition hydrocouplespatial.h:249
@ MultiCurve
Definition hydrocouplespatial.h:235
@ MultiPolygonZM
Definition hydrocouplespatial.h:287
@ LineStringM
Definition hydrocouplespatial.h:263
@ SurfaceM
Definition hydrocouplespatial.h:276
@ CircularStringZM
Definition hydrocouplespatial.h:289
@ Polygon
Definition hydrocouplespatial.h:226
@ CurveZ
Definition hydrocouplespatial.h:256
@ MultiLineStringZM
Definition hydrocouplespatial.h:286
@ MultiCurveZM
Definition hydrocouplespatial.h:292
@ TriangleM
Definition hydrocouplespatial.h:265
@ CircularStringM
Definition hydrocouplespatial.h:270
@ PolyhedralSurfaceZM
Definition hydrocouplespatial.h:296
@ MultiCurveM
Definition hydrocouplespatial.h:273
@ Curve
Definition hydrocouplespatial.h:237
@ PolygonZ
Definition hydrocouplespatial.h:245
@ MultiLineString
Definition hydrocouplespatial.h:229
@ TIN
Definition hydrocouplespatial.h:240
@ CurveZM
Definition hydrocouplespatial.h:294
@ TINZ
Definition hydrocouplespatial.h:259
@ Geometry
Definition hydrocouplespatial.h:223
@ MultiSurfaceZM
Definition hydrocouplespatial.h:293
@ CompoundCurveZ
Definition hydrocouplespatial.h:252
@ GeometryCollection
Definition hydrocouplespatial.h:231
@ CircularStringZ
Definition hydrocouplespatial.h:251
virtual IEnvelope * envelope() const =0
The minimum bounding box for this Geometry, returned as a IGeometry. Recalculated at the time of the ...
virtual IGeometry * difference(const IGeometry &geom) const =0
virtual bool crosses(const IGeometry &geom) const =0
virtual bool isMeasured() const =0
virtual IGeometry * symmetricDifference(const IGeometry &geom) const =0
virtual unsigned int index() const =0
index of the geometry if it is part of a collection.
virtual bool within(const IGeometry &geom) const =0
virtual IGeometry * boundary() const =0
Returns the closure of the combinatorial boundary of this geometric object (Reference [1],...
virtual bool contains(const IGeometry &geom) const =0
virtual IGeometry * convexHull() const =0
virtual GeometryType geometryType() const =0
Get the dimension of the coordinates in this object.
virtual IGeometry * locateAlong(double value) const =0
virtual int coordinateDimension() const =0
Get the dimension of the coordinates in this object.
virtual IGeometry * locateBetween(double mStart, double mEnd) const =0
The ILine class is an ILineString with exactly 2 IPoints.
Definition hydrocouplespatial.h:792
virtual ~ILine()=default
ILine destructor.
An ILineString is a Curve with linear interpolation between Points. Each consecutive pair of Points d...
Definition hydrocouplespatial.h:755
virtual int pointCount() const =0
The number of IPoints in this ILineString.
virtual ~ILineString()=default
ILineString destructor.
virtual IPoint * point(int index) const =0
An ILinearRing is an ILineString that is both isClosed() and isSimple().
Definition hydrocouplespatial.h:804
virtual ~ILinearRing()=default
ILinearRing destructor.
An IMultiCurve is a 1-dimensional IGeometryCollection whose elements are ICurves.
Definition hydrocouplespatial.h:733
virtual ~IMultiCurve()=default
virtual bool isClosed() const =0
virtual double length() const =0
The Length of this IMultiCurve which is equal to the sum of the lengths of the element ICurves.
An IMultiLineString is an IMultiCurve whose elements are ILineStrings.
Definition hydrocouplespatial.h:777
virtual ~IMultiLineString()=default
IMultiLineString destructor.
virtual ILineString * lineString(int index) const =0
Returns the ILineString at index.
An IMultiPoint is a 0-dimensional IGeometryCollection.
Definition hydrocouplespatial.h:613
virtual IPoint * point(int index) const =0
virtual ~IMultiPoint()=default
IMultiPoint destructor.
An IMultiPolygon is an IMultiSurface whose elements are IPolygons.
Definition hydrocouplespatial.h:1106
virtual IPolygon * polygon(int index) const =0
virtual ~IMultiPolygon()=default
A MultiSurface is a 2-dimensional GeometryCollection whose elements are Surfaces, all using coordinat...
Definition hydrocouplespatial.h:1001
virtual IPoint * pointOnSurface() const =0
The mathematical centroid for this ISurface as an IPoint. The result is not guaranteed to be on this ...
virtual ~IMultiSurface()=default
IMultiSurface destructor.
virtual double area() const =0
The area of this ISurface, as measured in the spatial reference system of this ISurface.
virtual IPoint * centroid() const =0
The mathematical centroid for this ISurface as an IPoint. The result is not guaranteed to be on this ...
The INetworkComponentDataItem class.
Definition hydrocouplespatial.h:1665
virtual NetworkDataObjectType networkDataObjectType() const =0
MeshDataObject that represents the artifact of network that is associated with the data.
virtual void setValues(const hydrocouple_variant *data, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, 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.
virtual NetworkDataType networkDataType() const =0
meshDataType represents the type of mesh data type stored in the network.
virtual IDimension * vertexDimension() const =0
nodeDimension represents the dimension for the vertices.
virtual void getValues(hydrocouple_variant *data, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, 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 IDimension * edgeDimension() const =0
edgeDimension represents the dimension for the edges.
virtual ~INetworkComponentDataItem()=default
INetworkComponentDataItem destructor.
virtual void setValue(const hydrocouple_variant &data, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={})=0
setValue for given edge dimension index and node dimension index and data.
virtual INetwork * network() const =0
network associated with this INetworkComponentDataItem.
virtual void getValue(hydrocouple_variant &data, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}) const =0
getValue for given edge dimension index and node dimension index.
The INetwork class.
Definition hydrocouplespatial.h:1154
virtual int edgeCount() const =0
edgeCount represents the number of all the edges in the network.
virtual int vertexCount() const =0
vertexCount
virtual ~INetwork()=default
~Network destructor.
virtual IVertex * vertex(int index) const =0
vertex
virtual IEdge * edge(int index) const =0
edge
An IPoint is a 0-dimensional geometric object and represents a single location in coordinate space.
Definition hydrocouplespatial.h:571
virtual double m() const =0
The x-coordinate value for this IPoint. Returns NIL otherwise.
virtual double y() const =0
The y-coordinate value for this IPoint.
virtual double x() const =0
The x-coordinate value for this IPoint.
virtual double z() const =0
The x-coordinate value for this IPoint. Returns NIL otherwise.
virtual ~IPoint()=default
IPoint destructor.
A IPolygon is a planar ISurface defined by 1 exterior boundary and 0 or more interior boundaries.
Definition hydrocouplespatial.h:1066
virtual int interiorRingCount() const =0
virtual ILineString * interiorRing(int index) const =0
virtual IPolyhedralSurface * polyhydralSurface() const =0
polyhydralSurface
virtual ~IPolygon()=default
IPolygon destructor.
virtual ILineString * exteriorRing() const =0
virtual IEdge * edge() const =0
An arbitrary adjacent edge for this IPolygon.
IPolyhedralSurfaceComponentItem represents IPolyhedralSurface IComponentItem.
Definition hydrocouplespatial.h:1779
virtual void setValues(const hydrocouple_variant *data, int patchDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, 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 IPolyhedralSurface * polyhedralSurface() const =0
virtual IDimension * vertexDimension() const =0
vertexDimension represents the dimension for the nodes of the edges of patches associated with the IP...
virtual IDimension * patchDimension() const =0
patchDimension represents the dimension for the patches associated with the IPolyhedralSurface.
virtual IDimension * edgeDimension() const =0
edgeDimension represents the dimension for the edges of patches associated with the IPolyhedralSurfac...
virtual void getValues(hydrocouple_variant *data, int patchDimensionIndex, int edgeDimensionIndex, int vertexDimensionIndex, const initializer_list< int > &dimensionIndexes={}, 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 ...
virtual ~IPolyhedralSurfaceComponentDataItem()=default
IPolyhedralSurfaceComponentItem destructor.
virtual MeshDataObjectType meshDataObjectType() const =0
meshDataType represents the type of mesh data.
virtual void setValue(const hydrocouple_variant &data, 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 MeshDataType meshDataType() const =0
polyhedralSurface
virtual void getValue(hydrocouple_variant &data, 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.
An IPolyhedralSurface is a contiguous collection of polygons, which share common boundary segments.
Definition hydrocouplespatial.h:1223
virtual int vertexCount() const =0
vertexCount represents the number of all the vertices shared by the patches.
virtual IPolygon * patch(int index) const =0
virtual ~IPolyhedralSurface()=default
IPolyhedralSurface destructor.
virtual int patchCount() const =0
The number of polygons in this surface.
virtual IMultiPolygon * boundingPolygons(const IPolygon *polygon) const =0
virtual IVertex * vertex(int index) const =0
vertex of the network with the specified index.
virtual bool isClosed() const =0
IRasterBand is a single raster band for an IRaster.
Definition hydrocouplespatial.h:1378
virtual IRaster::RasterDataType dataType() const =0
Raster data type.
virtual IRaster * raster() const =0
Parent IRaster of this IRasterBand.
virtual int ySize() const =0
Number of pixels in y direction.
virtual void read(int xOffset, int yOffset, int xSize, int ySize, void *image) const =0
Reads data into the image block.
virtual int xSize() const =0
Number of pixels in the x direction.
virtual double noData() const =0
virtual ~IRasterBand()=default
IRasterBand destructor.
virtual void write(int xOffset, int yOffset, int xSize, int ySize, const void *image)=0
Writes image into the raster band.
An IRasterComponentDataItem represents an IRaster IComponentItem.
Definition hydrocouplespatial.h:1943
virtual void setValue(const hydrocouple_variant &data, 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 ~IRasterComponentDataItem()=default
IRasterComponentItem destructor.
virtual IDimension * yDimension() const =0
IDimension for yDirection.
virtual IDimension * xDimension() const =0
IDimension for xDirection.
virtual IRaster * raster() const =0
IRaster associated with this IRasterComponentDataItem.
virtual IDimension * bandDimension() const =0
IDimension for IRasterBands.
virtual void getValues(hydrocouple_variant *data, int xIndex, int yIndex, int bandIndex, const initializer_list< int > &dimensionIndexes={}, 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 setValues(const hydrocouple_variant *data, int xIndex, int yIndex, int bandIndex, const initializer_list< int > &dimensionIndexes={}, 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 getValue(hydrocouple_variant &data, 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.
A Raster spatial feature.
Definition hydrocouplespatial.h:1290
virtual void geoTransformation(double *transformationMatrix)=0
Fetches the affine transformation coefficients. It is an array of size 6.
virtual int rasterBandCount() const =0
Number of raster bands.
virtual ~IRaster()=0
IRaster destructor.
virtual int xSize() const =0
Number of pixels in the x direction.
virtual ISpatialReferenceSystem * spatialReferenceSystem() const =0
The ISpatialReferenceSystem represents the spatial reference system of goemetric object.
virtual void addRasterBand(RasterDataType dataType)=0
Adds a new IRasterBand.
RasterDataType
The data type associated with a raster.
Definition hydrocouplespatial.h:1297
@ Byte
Eight bit unsigned integer.
Definition hydrocouplespatial.h:1301
@ UInt16
Sixteen bit unsigned integer.
Definition hydrocouplespatial.h:1303
@ CFloat32
Complex Float32.
Definition hydrocouplespatial.h:1319
@ UInt32
Thirty two bit unsigned integer.
Definition hydrocouplespatial.h:1307
@ CFloat64
Complex Float64.
Definition hydrocouplespatial.h:1321
@ Float32
Thirty two bit floating point.
Definition hydrocouplespatial.h:1311
@ Unknown
Unknown or unspecified type.
Definition hydrocouplespatial.h:1299
@ ARGB32_Premultiplied
Color, alpha, red, green, blue, 4 bytes the same as QImage::Format_ARGB32_Premultiplied.
Definition hydrocouplespatial.h:1325
@ Int16
Sixteen bit signed integer.
Definition hydrocouplespatial.h:1305
@ ARGB32
Color, alpha, red, green, blue, 4 bytes the same as QImage::Format_ARGB32.
Definition hydrocouplespatial.h:1323
@ Float64
Sixty four bit floating point.
Definition hydrocouplespatial.h:1313
@ CInt32
Complex Int32.
Definition hydrocouplespatial.h:1317
@ Int32
Thirty two bit signed integer.
Definition hydrocouplespatial.h:1309
@ CInt16
Complex Int16.
Definition hydrocouplespatial.h:1315
virtual int ySize() const =0
Number of pixels in y direction.
virtual IRasterBand * getRasterBand(int bandIndex) const =0
Gets the IRasterBand for the band with index bandIndex.
An IRegularGrid2DComponentDataItem represents an IRegularGrid2D IComponentItem.
Definition hydrocouplespatial.h:2061
virtual void getValue(hydrocouple_variant &data, 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.
virtual IDimension * cellEdgeDimension() const =0
cellEdgeDimension. Edge indices start from the bottom and go in a counter clockwise order.
virtual void setValues(const hydrocouple_variant *data, int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, 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 xCellIndex, int yCellIndex, int cellEdgeIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, 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 ~IRegularGrid2DComponentDataItem()=default
~IRegularGrid2DComponentItem.
virtual IDimension * yCellDimension() const =0
Number of Y cells IDimension.
virtual IRegularGrid2D * grid() const =0
IRegularGrid2D grid associated with this IRegularGrid2DComponentItem.
virtual IDimension * cellVertexDimension() const =0
cellVertexDimension. Vertex indices start from the bottom left and go in a counter clockwise order.
virtual void setValue(const hydrocouple_variant &data, 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 MeshDataObjectType meshDataObjectType() const =0
meshDataType represents the type of mesh data type stored in the grid.
virtual IDimension * xCellDimension() const =0
Number of X cells IDimension.
The IRegularGrid2D class.
Definition hydrocouplespatial.h:1428
virtual ISpatialReferenceSystem * spatialReferenceSystem() const =0
The ISpatialReferenceSystem represents the spatial reference system of goemetric object.
virtual ~IRegularGrid2D()=default
IRegularGrid2D destructor.
virtual RegularGridType gridType() const =0
gridType
virtual double xNodeLocation(int xNodeIndex, int yNodeIndex) const =0
xNodeLocation provides the x location coordinate for the x-node and y-node indexes.
virtual int numYNodes() const =0
numYNodes represents the number of nodes in the y direction.
virtual bool isActive(int xCellIndex, int yCellIndex) const =0
isActive is a bool indicating whether a cell is active.
virtual double yNodeLocation(int xNodeIndex, int yNodeIndex) const =0
yNodeLocation provides the x location coordinate for the x-node and y-node indexes.
virtual int numXNodes() const =0
numXNodes represents the number of nodes in the x direction.
An IRegularGrid3DComponentItem represents an IRegularGrid3D IComponentItem.
Definition hydrocouplespatial.h:2207
virtual IRegularGrid3D * grid() const =0
IRegularGrid3D grid associated with this IRegularGrid3DComponentItem.
virtual void setValue(const hydrocouple_variant &data, 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 IDimension * zCellDimension() const =0
Number of Z cells IDimension.
virtual IDimension * cellFaceDimension() const =0
cellFaceDimension 0 = Top , 1 = Bottom, 2 = left , 3 = Right, Up = 4, Down = 5
virtual ~IRegularGrid3DComponentDataItem()=default
~IRegularGrid3DComponentItem.
virtual void getValues(hydrocouple_variant *data, int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, 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 IDimension * yCellDimension() const =0
Number of Y cells IDimension.
virtual void getValue(hydrocouple_variant &data, 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 IDimension * xCellDimension() const =0
Number of X cells IDimension.
virtual MeshDataObjectType meshDataObjectType() const =0
meshDataType
virtual IDimension * cellVertexDimension() const =0
cellVertexDimension Node indices start from the bottom left and go in a counter clockwise order.
virtual void setValues(const hydrocouple_variant *data, int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellVertexIndex, const initializer_list< int > &dimensionIndexes={}, 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 IRegularGrid3D class.
Definition hydrocouplespatial.h:1487
virtual double yNodeLocation(int xNodeIndex, int yNodeIndex) const =0
yNodeLocation provides the x location coordinate for the x-node and y-node indexes.
virtual ISpatialReferenceSystem * spatialReferenceSystem() const =0
The ISpatialReferenceSystem represents the spatial reference system of goemetric object.
virtual int numZNodes() const =0
numZNodes represents the number of nodes in the z direction.
virtual int numXNodes() const =0
numXNodes represents the number of nodes in the x direction.
virtual double zNodeLocation(int xNodeIndex, int yNodeIndex, int zNodeIndex) const =0
zNodeLocation provides the z location coordinate for the x-node, y-node, and z-node indexes.
virtual bool isActive(int xCellIndex, int yCellIndex, int zCellIndex) const =0
isActive is a bool indicating whether a cell is active.
virtual double xNodeLocation(int xNodeIndex, int yNodeIndex) const =0
xNodeLocation provides the x location coordinate for the x-node and y-node indexes.
virtual RegularGridType gridType() const =0
gridType
virtual ~IRegularGrid3D()=default
IRegularGrid3D destructor.
virtual int numYNodes() const =0
numYNodes represents the number of nodes in the y direction.
Spatial Reference System.
Definition hydrocouplespatial.h:133
virtual ~ISpatialReferenceSystem()=default
The Well-known Text Representation of the Spatial Reference System.
virtual int authSRID() const =0
Returns the Spatial Reference System ID (SRID) for a geometric object. This will normally be a foreig...
virtual string authName() const =0
The Authority Specific Spatial Reference System Identifier.
virtual HydroCouple::IUnit::DistanceUnits distanceUnits() const =0
The measurement distance units for the Spatial Reference System.
virtual string srText() const =0
A ISurface is a 2-dimensional IGeometry object.
Definition hydrocouplespatial.h:965
virtual double area() const =0
The area of this ISurface, as measured in the spatial reference system of this ISurface.
virtual IMultiCurve * boundaryMultiCurve() const =0
boundaryMultiCurve
virtual IPoint * centroid() const =0
The mathematical centroid for this ISurface as a Point. The result is not guaranteed to be on this IS...
virtual IPoint * pointOnSurface() const =0
A Point guaranteed to be on this Surface.
virtual ~ISurface()=default
ISurface destructor.
ITINComponentDataItem represents ITIN IComponentDataItem.
Definition hydrocouplespatial.h:1916
virtual ~ITINComponentDataItem()=default
ITINComponentDataItem destructor.
virtual ITIN * TIN() const =0
An ITIN is a triangulated irregular network IPolyhedralSurface consisting only of ITriangle patches.
Definition hydrocouplespatial.h:1273
virtual ~ITIN()=default
ITIN destructor.
virtual ITriangle * triangle(int index) const =0
An ITriangle is a IPolygon with 3 distinct, non-collinear vertices and no interior boundary.
Definition hydrocouplespatial.h:1122
virtual IVertex * vertex3() const =0
The third vertex of this ITriangle.
virtual IVertex * vertex1() const =0
The first vertex of this ITriangle.
virtual IVertex * vertex(int index) const =0
The vertex of this ITriangle at the specified index.
virtual IVertex * vertex2() const =0
The second vertex of this ITriangle.
virtual ~ITriangle()=default
ITriangle destructor.
The IVertex class is an IPoint of a topologically aware IGeometry.
Definition hydrocouplespatial.h:631
virtual ~IVertex()=default
IVertex destructor.
virtual IEdge * edge() const =0
An arbitrary outgoing IEdge from this vertex.
virtual unsigned int index() const =0
unique index identifier
MeshDataType
The types of data available in a mesh.
Definition hydrocouplespatial.h:90
NetworkDataType
The types of data available in a network.
Definition hydrocouplespatial.h:105
@ Vector
Vector values.
Definition hydrocouplespatial.h:96
@ Scalar
Single scalar value.
Definition hydrocouplespatial.h:92
@ MultiScalar
Multiple scalar values.
Definition hydrocouplespatial.h:94
@ Tensor
Tensor values.
Definition hydrocouplespatial.h:98
RegularGridType
The types of regular grids.
Definition hydrocouplespatial.h:120
@ Rectilinear
Rectilinear grid.
Definition hydrocouplespatial.h:124
@ Curvilinear
Curvilinear grid.
Definition hydrocouplespatial.h:126
@ Cartesian
Cartesian grid.
Definition hydrocouplespatial.h:122
MeshDataObjectType
The MeshDataType enum describes the part of the geometry of the mesh that data corresponds to.
Definition hydrocouplespatial.h:47
@ Vertex
The data corresponds to the vertex of mesh edge vertex.
Definition hydrocouplespatial.h:57
@ Face
The data corresponds to the edges of the mesh.
Definition hydrocouplespatial.h:67
@ Cell
The data corresponds to mesh cell.
Definition hydrocouplespatial.h:52
NetworkDataObjectType
The types of data available in a network.
Definition hydrocouplespatial.h:74
@ Node
The data corresponds to the nodes of the network.
Definition hydrocouplespatial.h:78
@ Edge
The data corresponds to the edges of the mesh.
Definition hydrocouplespatial.h:62
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
The Point struct.
Definition hydrocouplespatialwkb.h:36
The PointM struct.
Definition hydrocouplespatialwkb.h:55
The PointZ struct.
Definition hydrocouplespatialwkb.h:45
The PointZM struct.
Definition hydrocouplespatialwkb.h:65