24 #ifndef HYDROCOUPLESPATIAL_H
25 #define HYDROCOUPLESPATIAL_H
112 virtual double minX()
const = 0;
118 virtual double maxX()
const = 0;
124 virtual double minY()
const = 0;
130 virtual double maxY()
const = 0;
136 virtual double minZ()
const = 0;
142 virtual double maxZ()
const = 0;
164 GeometryCollection = 7,
172 PolyhedralSurface = 15,
181 MultiLineStringZ = 1005,
182 MultiPolygonZ = 1006,
183 GeometryCollectionZ = 1007,
184 CircularStringZ = 1008,
185 CompoundCurveZ = 1009,
186 CurvePolygonZ = 1010,
188 MultiSurfaceZ = 1012,
191 PolyhedralSurfaceZ = 1015,
200 MultiLineStringM = 2005,
201 MultiPolygonM = 2006,
202 GeometryCollectionM = 2007,
203 CircularStringM = 2008,
204 CompoundCurveM = 2009,
205 CurvePolygonM = 2010,
207 MultiSurfaceM = 2012,
210 PolyhedralSurfaceM = 2015,
219 MultiLineStringZM = 3005,
220 MultiPolygonZM = 3006,
221 GeometryCollectionZM = 3007,
222 CircularStringZM = 3008,
223 CompoundCurveZM = 3009,
224 CurvePolygonZM = 3010,
226 MultiSurfaceZM = 3012,
229 PolyhedralSurfaceZM = 3015,
242 virtual string id()
const = 0;
248 virtual unsigned int index()
const = 0;
296 virtual unsigned char *
getWKB(
int &size)
const = 0;
516 virtual double x()
const = 0;
521 virtual double y()
const = 0;
526 virtual double z()
const = 0;
531 virtual double m()
const = 0;
767 virtual unsigned int index()
const = 0;
914 virtual double area()
const = 0;
952 virtual double area()
const = 0;
1340 virtual void read(
int xOffset,
int yOffset,
int xSize,
int ySize,
void *image)
const = 0;
1350 virtual void write(
int xOffset,
int yOffset,
int xSize,
int ySize,
const void *image) = 0;
1423 virtual bool isActive(
int xCellIndex,
int yCellIndex)
const = 0;
1485 virtual double zNodeLocation(
int xNodeIndex,
int yNodeIndex,
int zNodeIndex)
const = 0;
1494 virtual bool isActive(
int xCellIndex,
int yCellIndex,
int zCellIndex)
const = 0;
1502 using IComponentDataItem::getValue;
1503 using IComponentDataItem::setValue;
1548 virtual void getValue(
int geometryDimensionIndex,
void *data)
const = 0;
1556 virtual void getValues(
int geometryDimensionIndex,
int stride,
void *data)
const = 0;
1563 virtual void setValue(
int geometryDimensionIndex,
const void *data) = 0;
1571 virtual void setValues(
int geometryDimensionIndex,
int stride,
const void *data) = 0;
1579 using IComponentDataItem::getValue;
1580 using IComponentDataItem::setValue;
1615 virtual void getValue(
int edgeDimensionIndex,
int nodeDimensionIndex,
void *data)
const = 0;
1623 virtual void setValue(
int edgeDimensionIndex,
int nodeDimensionIndex,
const void *data) = 0;
1631 using IComponentDataItem::getValue;
1632 using IComponentDataItem::setValue;
1677 virtual void getValue(
int cellDimensionIndex,
int edgeDimensionIndex,
int nodeDimensionIndex,
void *data)
const = 0;
1686 virtual void setValue(
int cellDimensionIndex,
int edgeDimensionIndex,
int nodeDimensionIndex,
const void *data) = 0;
1750 virtual void getValue(
int xIndex,
int yIndex,
int band,
void *data)
const = 0;
1761 virtual void getValues(
int xIndex,
int yIndex,
int band,
int xStride,
int yStride,
void *data)
const = 0;
1770 virtual void setValue(
int xIndex,
int yIndex,
int band,
const void *data) = 0;
1781 virtual void setValues(
int xIndex,
int yIndex,
int band,
int xStride,
int yStride,
const void *data) = 0;
1790 using IComponentDataItem::getValue;
1791 using IComponentDataItem::setValue;
1840 virtual void getValue(
int xCellIndex,
int yCellIndex,
int cellEdgeIndex,
int cellNodeIndex,
void *data)
const = 0;
1850 virtual void setValue(
int xCellIndex,
int yCellIndex,
int cellEdgeIndex,
int cellNodeIndex,
const void *data) = 0;
1859 using IComponentDataItem::getValue;
1860 using IComponentDataItem::setValue;
1916 virtual void getValue(
int xCellIndex,
int yCellIndex,
int zCellIndex,
1917 int cellFaceIndex,
int cellNodeIndex,
void *data)
const = 0;
1928 virtual void setValue(
int xCellIndex,
int yCellIndex,
int zCellIndex,
1929 int cellFaceIndex,
int cellNodeIndex,
const void *data) = 0;
1937 using IComponentDataItem::getValue;
1938 using IComponentDataItem::setValue;
1978 virtual void getValue(
int locationIndex,
int spatialDimensionIndex,
void *data)
const = 0;
1988 virtual void getValues(
int locationIndex,
int spatialDimensionIndex,
1989 int locationStride,
int spatialDimensionStride,
void *data)
const = 0;
1996 virtual void setValue(
int locationIndex,
int spatialDimensionIndex,
const void *data) = 0;
2006 virtual void setValues(
int locationIndex,
int spatialDimensionIndex,
2007 int locationStride,
int spatialDimensionStride,
const void *data) = 0;
IComponentItem is a fundamental unit of data for a component.
Definition: hydrocouple.h:1069
virtual void setValue(const vector< int > &dimensionIndexes, const void *data)=0
Sets a multi-dimensional array of values for given dimension indexes.
virtual void getValue(const vector< int > &dimensionIndexes, void *data) const =0
Gets a multi-dimensional array of value for given dimension indexes. IndexArray = x + y * InSizeX + z...
IDimension provides the properties of the dimensions of a variable.
Definition: hydrocouple.h:863
IIdentity interface class defines a method to get the Id of an HydroCouple entity.
Definition: hydrocouple.h:169
A Curve is a 1-dimensional geometric object usually stored as a sequence of IPoints,...
Definition: hydrocouplespatial.h:607
virtual ~ICurve()=0
ICurve destructor.
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 IPoint * endPoint() const =0
The end IPoint of this ICurve.
virtual IPoint * startPoint() const =0
The start IPoint of this ICurve.
A directed edge from one vertex to another, adjacent to two faces. Based on Dani Lischinski's code fr...
Definition: hydrocouplespatial.h:755
virtual IEdge * leftPrev()=0
The ccw edge around the left face before this edge.
virtual unsigned int index() const =0
unique index identifier
virtual IEdge * rot()=0
The dual of this edge, directed from its right to its left.
virtual IPolygon * right()=0
The right face of this edge.
virtual IEdge * origPrev()=0
The next cw edge around (from) the origin of this edge.
virtual IEdge * origNext()=0
The next ccw edge around (from) the origin of this IEdge.
virtual IVertex * dest()=0
The destination IVertex of this IEdge.
virtual IEdge * destPrev()=0
The next cw edge around (into) the destination of this edge.
virtual IEdge * rightNext()=0
The edge around the right face ccw following this edge.
virtual IPolygon * left()=0
The left face of this edge.
virtual IEdge * rightPrev()=0
The IEdge around the right face ccw before this IEdge.
virtual IEdge * sym()=0
The IEdge from the destination to the origin of this IEdge.
virtual IEdge * leftNext()=0
The ccw edge around the left face following this edge.
virtual IVertex * orig()=0
The origin IVertex of this IEdge.
virtual ~IEdge()=0
IEdge destructor.
virtual IEdge * destNext()=0
The next ccw edge around (into) the destination of this edge.
virtual IEdge * invRot()=0
The dual of this IEdge, directed from its left to its right.
virtual IPolygon * face()=0
The target face of this edge, if dual. Otherwise null if not dual.
The IEnvelope class.
Definition: hydrocouplespatial.h:100
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 double minY() const =0
minY The minimum y-coordinate value for this IEnvelope.
virtual ~IEnvelope()=0
The minimum x-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:471
virtual int geometryCount() const =0
The number of geometries in this IGeometryCollection.
virtual ~IGeometryCollection()=0
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:1501
virtual IGeometry * geometry(int geometryIndex) const =0
geometry
virtual void setValues(int geometryDimensionIndex, int stride, const void *data)=0
Sets a multi-dimensional array of values for given geometry dimension index and size for a hyperslab.
virtual IGeometry::GeometryType geometryType() const =0
geometryType
virtual HydroCouple::Spatial::IEnvelope * envelope() const =0
envelope
virtual ~IGeometryComponentDataItem()=0
IGeometryComponentItem destructor.
virtual HydroCouple::IDimension * geometryDimension() const =0
virtual int geometryCount() const =0
geometryCount
virtual void getValues(int geometryDimensionIndex, int stride, void *data) const =0
Gets a multi-dimensional array of values for given geometry dimension index and size for a hyperslab.
virtual void getValue(int geometryDimensionIndex, void *data) const =0
Gets value for given geometry dimension index.
virtual void setValue(int geometryDimensionIndex, const void *data)=0
Sets value for given geometry dimension index.
IGeometry is the root class of the geometry hierarchy.
Definition: hydrocouplespatial.h:149
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 IGeometry * difference(const IGeometry &geom) const =0
virtual bool equals(const IGeometry &geom) const =0
virtual IGeometry * symmetricDifference(const IGeometry &geom) const =0
virtual bool overlaps(const IGeometry &geom) const =0
virtual IGeometry * convexHull() 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 IGeometry * intersection(const IGeometry &geom) const =0
virtual IGeometry * unionG(const IGeometry &geom) const =0
virtual unsigned char * getWKB(int &size) const =0
Exports this geometric object to a specific Well-known byte Representation of Geometry.
virtual bool disjoint(const IGeometry &geom) const =0
virtual IGeometry * boundary() const =0
Returns the closure of the combinatorial boundary of this geometric object (Reference [1],...
virtual IEnvelope * envelope() const =0
The minimum bounding box for this Geometry, returned as a IGeometry. Recalculated at the time of the ...
virtual IGeometry * locateBetween(double mStart, double mEnd) const =0
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...
GeometryType
The type of IGeometry.
Definition: hydrocouplespatial.h:155
virtual ISpatialReferenceSystem * spatialReferenceSystem() const =0
Spatial reference system of geometric object.
virtual bool crosses(const IGeometry &geom) const =0
virtual IGeometry * locateAlong(double value) 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 ~IGeometry()=0
The type of IGeometry.
virtual bool isMeasured() 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 bool contains(const IGeometry &geom) const =0
virtual GeometryType geometryType() const =0
Get the dimension of the coordinates in this object.
virtual int coordinateDimension() const =0
Get the dimension of the coordinates in this object.
The ILine class is an ILineString with exactly 2 IPoints.
Definition: hydrocouplespatial.h:726
virtual ~ILine()=0
ILine destructor.
An ILineString is a Curve with linear interpolation between Points. Each consecutive pair of Points d...
Definition: hydrocouplespatial.h:687
virtual IPoint * point(int index) const =0
virtual int pointCount() const =0
The number of IPoints in this ILineString.
virtual ~ILineString()=0
ILineString destructor.
An ILinearRing is an ILineString that is both isClosed() and isSimple().
Definition: hydrocouplespatial.h:739
virtual ~ILinearRing()=0
ILinearRing destructor.
An IMultiCurve is a 1-dimensional IGeometryCollection whose elements are ICurves.
Definition: hydrocouplespatial.h:665
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:710
virtual ~IMultiLineString()=0
IMultiLineString destructor.
virtual ILineString * lineString(int index) const =0
Returns the ILineString at index.
An IMultiPoint is a 0-dimensional IGeometryCollection.
Definition: hydrocouplespatial.h:548
virtual ~IMultiPoint()=0
IMultiPoint destructor.
virtual IPoint * point(int index) const =0
An IMultiPolygon is an IMultiSurface whose elements are IPolygons.
Definition: hydrocouplespatial.h:1046
virtual ~IMultiPolygon()=0
virtual IPolygon * polygon(int index) const =0
A MultiSurface is a 2-dimensional GeometryCollection whose elements are Surfaces, all using coordinat...
Definition: hydrocouplespatial.h:939
virtual IPoint * centroid() const =0
The mathematical centroid for this ISurface as an IPoint. The result is not guaranteed to be on this ...
virtual double area() const =0
The area of this ISurface, as measured in the spatial reference system of this ISurface.
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()=0
IMultiSurface destructor.
The INetworkComponentDataItem class.
Definition: hydrocouplespatial.h:1578
virtual MeshDataType meshDataType() const =0
meshDataType represents the type of mesh data.
virtual ~INetworkComponentDataItem()=0
virtual IDimension * nodeDimension() const =0
nodeDimension represents the dimension for the nodes.
virtual IDimension * edgeDimension() const =0
edgeDimension represents the dimension for the edges.
virtual void getValue(int edgeDimensionIndex, int nodeDimensionIndex, void *data) const =0
getValue for given edge dimension index and node dimension index.
virtual void setValue(int edgeDimensionIndex, int nodeDimensionIndex, const void *data)=0
setValue for given edge dimension index and node dimension index.
virtual INetwork * network() const =0
network associated with this INetworkComponentDataItem.
The INetwork class.
Definition: hydrocouplespatial.h:1090
virtual int edgeCount() const =0
edgeCount represents the number of all the edges in the network.
virtual IVertex * vertex(int index) const =0
vertex
virtual int vertexCount() const =0
vertexCount
virtual IEdge * edge(int index) const =0
edge
virtual ~INetwork()=0
~Network destructor.
An IPoint is a 0-dimensional geometric object and represents a single location in coordinate space.
Definition: hydrocouplespatial.h:505
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 ~IPoint()=0
IPoint destructor.
virtual double z() const =0
The x-coordinate value for this IPoint. Returns NIL otherwise.
A IPolygon is a planar ISurface defined by 1 exterior boundary and 0 or more interior boundaries.
Definition: hydrocouplespatial.h:1005
virtual ILineString * exteriorRing() const =0
virtual ILineString * interiorRing(int index) const =0
virtual int interiorRingCount() const =0
virtual ~IPolygon()=0
IPolygon destructor.
virtual IPolyhedralSurface * polyhydralSurface() const =0
polyhydralSurface
virtual IEdge * edge() const =0
An arbitrary adjacent edge for this IPolygon.
IPolyhedralSurfaceComponentItem represents IPolyhedralSurface IComponentItem.
Definition: hydrocouplespatial.h:1630
virtual IDimension * nodeDimension() const =0
nodeDimension represents the dimension for the nodes.
virtual ~IPolyhedralSurfaceComponentDataItem()=0
IPolyhedralSurfaceComponentItem destructor.
virtual void setValue(int cellDimensionIndex, int edgeDimensionIndex, int nodeDimensionIndex, const void *data)=0
setValues for given cell dimension index, edge dimension index, and node dimension index.
virtual IDimension * cellDimension() const =0
cellDimension represents the dimension for the cells.
virtual IDimension * edgeDimension() const =0
edgeDimension represents the dimension for the edges.
virtual MeshDataType meshDataType() const =0
meshDataType represents the type of mesh data.
virtual IPolyhedralSurface * polyhedralSurface() const =0
virtual void getValue(int cellDimensionIndex, int edgeDimensionIndex, int nodeDimensionIndex, void *data) 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:1159
virtual int vertexCount() const =0
vertexCount represents the number of all the vertices shared by the patches.
virtual int patchCount() const =0
The number of polygons in this surface.
virtual ~IPolyhedralSurface()=0
IPolyhedralSurface destructor.
virtual IMultiPolygon * boundingPolygons(const IPolygon *polygon) const =0
virtual IPolygon * patch(int index) 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:1312
virtual IRaster::RasterDataType dataType() const =0
Raster data type.
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 ~IRasterBand()=0
IRasterBand destructor.
virtual double noData() const =0
virtual void write(int xOffset, int yOffset, int xSize, int ySize, const void *image)=0
Writes image into the raster band.
virtual IRaster * raster() const =0
Parent IRaster of this IRasterBand.
An IRasterComponentDataItem represents an IRaster IComponentItem.
Definition: hydrocouplespatial.h:1712
virtual IRaster * raster() const =0
IRaster associated with this IRasterComponentDataItem.
virtual IDimension * yDimension() const =0
IDimension for yDirection.
virtual void setValues(int xIndex, int yIndex, int band, int xStride, int yStride, const void *data)=0
Sets a multi-dimensional array of values for given dimension for a hyperslab.
virtual IDimension * xDimension() const =0
IDimension for xDirection.
virtual void getValues(int xIndex, int yIndex, int band, int xStride, int yStride, void *data) const =0
Gets a multi-dimensional array of values for given dimension for a hyperslab.
virtual ~IRasterComponentDataItem()=0
IRasterComponentItem destructor.
virtual void getValue(int xIndex, int yIndex, int band, void *data) const =0
getValue for given x dimension index, y dimension index, and band dimension index.
virtual void setValue(int xIndex, int yIndex, int band, const void *data)=0
setValue for given x dimension index, y dimension index, and band dimension index.
virtual IDimension * bandDimension() const =0
IDimension for IRasterBands.
A Raster spatial feature.
Definition: hydrocouplespatial.h:1228
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 ISpatialReferenceSystem * spatialReferenceSystem() const =0
The ISpatialReferenceSystem represents the spatial reference system of goemetric object.
virtual int xSize() const =0
Number of pixels in the x direction.
virtual void addRasterBand(RasterDataType dataType)=0
Adds a new IRasterBand.
RasterDataType
The data type associated with a raster.
Definition: hydrocouplespatial.h:1235
@ Byte
Eight bit unsigned integer.
Definition: hydrocouplespatial.h:1239
@ UInt16
Sixteen bit unsigned integer.
Definition: hydrocouplespatial.h:1241
@ CFloat32
Complex Float32.
Definition: hydrocouplespatial.h:1257
@ UInt32
Thirty two bit unsigned integer.
Definition: hydrocouplespatial.h:1245
@ Float32
Thirty two bit floating point.
Definition: hydrocouplespatial.h:1249
@ Unknown
Unknown or unspecified type.
Definition: hydrocouplespatial.h:1237
@ Int16
Sixteen bit signed integer.
Definition: hydrocouplespatial.h:1243
@ Float64
Sixty four bit floating point.
Definition: hydrocouplespatial.h:1251
@ CInt32
Complex Int32.
Definition: hydrocouplespatial.h:1255
@ Int32
Thirty two bit signed integer.
Definition: hydrocouplespatial.h:1247
@ CInt16
Complex Int16.
Definition: hydrocouplespatial.h:1253
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:1788
virtual void getValue(int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellNodeIndex, void *data) const =0
getValue for given x cell index, y cell index, edge index, and node index.
virtual IDimension * yCellDimension() const =0
Number of Y cells IDimension.
virtual IDimension * cellNodeDimension() const =0
cellNodeDimension. Node indices start from the bottom left and go in a counter clockwise order.
virtual IDimension * cellEdgeDimension() const =0
cellEdgeDimension. Edge indices start from the bottom and go in a counter clockwise order.
virtual MeshDataType meshDataType() const =0
meshDataType
virtual IRegularGrid2D * grid() const =0
IRegularGrid2D grid associated with this IRegularGrid2DComponentItem.
virtual ~IRegularGrid2DComponentDataItem()=0
~IRegularGrid2DComponentItem.
virtual IDimension * xCellDimension() const =0
Number of X cells IDimension.
virtual void setValue(int xCellIndex, int yCellIndex, int cellEdgeIndex, int cellNodeIndex, const void *data)=0
setValue for given x cell index, y cell index, edge index, and node index.
The IRegularGrid2D class.
Definition: hydrocouplespatial.h:1375
virtual ~IRegularGrid2D()=0
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:1857
virtual ~IRegularGrid3DComponentDataItem()=0
~IRegularGrid3DComponentItem.
virtual IDimension * cellFaceDimension() const =0
cellFaceDimension 0 = Top , 1 = Bottom, 2 = left , 3 = Right, Up = 4, Down = 5
virtual void setValue(int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellNodeIndex, const void *data)=0
setValue for given x cell index, y cell index, z cell index, face index, and node index.
virtual IRegularGrid3D * grid() const =0
IRegularGrid3D grid associated with this IRegularGrid3DComponentItem.
virtual MeshDataType meshDataType() const =0
meshDataType
virtual IDimension * zCellDimension() const =0
Number of Z cells IDimension.
virtual void getValue(int xCellIndex, int yCellIndex, int zCellIndex, int cellFaceIndex, int cellNodeIndex, void *data) 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 IDimension * yCellDimension() const =0
Number of Y cells IDimension.
virtual IDimension * cellNodeDimension() const =0
cellNodeDimension Node indices start from the bottom left and go in a counter clockwise order.
The IRegularGrid3D class.
Definition: hydrocouplespatial.h:1430
virtual ~IRegularGrid3D()=0
IRegularGrid3D destructor.
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 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 int numYNodes() const =0
numYNodes represents the number of nodes in the y direction.
Spatial Reference System.
Definition: hydrocouplespatial.h:69
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 string srText() const =0
virtual ~ISpatialReferenceSystem()=0
The Well-known Text Representation of the Spatial Reference System.
A ISurface is a 2-dimensional IGeometry object.
Definition: hydrocouplespatial.h:902
virtual double area() const =0
The area of this ISurface, as measured in the spatial reference system of this ISurface.
virtual ~ISurface()=0
ISurface destructor.
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 IMultiCurve * boundaryMultiCurve() const =0
boundaryMultiCurve
ITINComponentDataItem represents ITIN IComponentDataItem.
Definition: hydrocouplespatial.h:1694
virtual ~ITINComponentDataItem()=0
ITINComponentDataItem destructor.
virtual ITIN * TIN() const =0
An ITIN is a triangulated irregular network IPolyhedralSurface consisting only of ITriangle patches.
Definition: hydrocouplespatial.h:1210
virtual ~ITIN()=0
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:1062
virtual ~ITriangle()=0
ITriangle destructor.
virtual IVertex * p2() const =0
The second vertex of this ITriangle.
virtual IVertex * p3() const =0
The third vertex of this ITriangle.
virtual IVertex * p1() const =0
The first vertex of this ITriangle.
The IVectorComponentDataItem class.
Definition: hydrocouplespatial.h:1936
virtual void setValue(int locationIndex, int spatialDimensionIndex, const void *data)=0
setValue for given location index and spatial dimension index.
virtual IDimension * locationsDimension() const =0
locationsDimension represents the dimension for the locations.
virtual IPoint * location(int locationIndex) const =0
location returns the IPoint at the given location index.
virtual void getValues(int locationIndex, int spatialDimensionIndex, int locationStride, int spatialDimensionStride, void *data) const =0
getValues for given location index and spatial dimension index.
virtual IDimension * spatialDimension() const =0
dataTypeDimension alway has a length of 3. 0 = x-direction value, 1 = y-direction,...
virtual void getValue(int locationIndex, int spatialDimensionIndex, void *data) const =0
getValue for given location index and spatial dimension index.
virtual void setValues(int locationIndex, int spatialDimensionIndex, int locationStride, int spatialDimensionStride, const void *data)=0
setValues for given location index and spatial dimension index.
virtual ~IVectorComponentDataItem()=0
~IVectorComponentDataItem
virtual int locationsCount() const =0
locationCount represents the number of locations.
The IVertex class is an IPoint of a topologically aware IGeometry.
Definition: hydrocouplespatial.h:567
virtual IEdge * edge() const =0
An arbitrary outgoing IEdge from this vertex.
virtual ~IVertex()=0
IVertex destructor.
MeshDataType
The MeshDataType enum describes the part of the geometry of the mesh that data corresponds to.
Definition: hydrocouplespatial.h:48
@ Node
The data corresponds to the nodes of the mesh.
Definition: hydrocouplespatial.h:52
@ Face
The data corresponds to the edges of the mesh.
Definition: hydrocouplespatial.h:57
@ Centroid
The data corresponds to the edges of the mesh.
Definition: hydrocouplespatial.h:62
RegularGridType
The types of regular grids.
Definition: hydrocouplespatial.h:1362
@ Rectilinear
Rectilinear grid.
Definition: hydrocouplespatial.h:1366
@ Curvilinear
Curvilinear grid.
Definition: hydrocouplespatial.h:1368
@ Cartesian
Cartesian grid.
Definition: hydrocouplespatial.h:1364
HydroCouple namespace contains the core interface specifications for the HydroCouple component-based ...
Definition: hydrocouple.h:50
The Point struct.
Definition: hydrocouplespatialwkb.h:37
The PointM struct.
Definition: hydrocouplespatialwkb.h:56
The PointZ struct.
Definition: hydrocouplespatialwkb.h:46
The PointZM struct.
Definition: hydrocouplespatialwkb.h:66