VAPOR3 3.9.4
|
class for a 2D unstructured grid. More...
#include <UnstructuredGridCoordless.h>
Classes | |
class | ConstCoordItrUCoordless |
Public Member Functions | |
UnstructuredGridCoordless (const DimsType &vertexDims, const DimsType &faceDims, const DimsType &edgeDims, const DimsType &bs, const std::vector< float * > &blks, size_t topology_dimension, const int *vertexOnFace, const int *faceOnVertex, const int *faceOnFace, Location location, size_t maxVertexPerFace, size_t maxFacePerVertex, long nodeOffset, long cellOffset) | |
UnstructuredGridCoordless (const std::vector< size_t > &vertexDims, const std::vector< size_t > &faceDims, const std::vector< size_t > &edgeDims, const std::vector< size_t > &bs, const std::vector< float * > &blks, size_t topology_dimension, const int *vertexOnFace, const int *faceOnVertex, const int *faceOnFace, Location location, size_t maxVertexPerFace, size_t maxFacePerVertex, long nodeOffset, long cellOffset) | |
UnstructuredGridCoordless ()=default | |
virtual | ~UnstructuredGridCoordless ()=default |
virtual DimsType | GetCoordDimensions (size_t dim) const override |
std::string | GetType () const override |
virtual void | GetBoundingBox (const DimsType &min, const DimsType &max, CoordType &minu, CoordType &maxu) const override |
bool | GetEnclosingRegion (const CoordType &minu, const CoordType &maxu, DimsType &min, DimsType &max) const override |
virtual void | GetUserCoordinates (const DimsType &indices, CoordType &coords) const override |
bool | GetIndicesCell (const CoordType &, DimsType &) const override |
bool | InsideGrid (const CoordType &coords) const override |
float | GetValueNearestNeighbor (const CoordType &coords) const override |
float | GetValueLinear (const CoordType &coords) const override |
virtual size_t | GetGeometryDim () const override |
virtual ConstCoordItr | ConstCoordBegin () const override |
Return constant grid coordinate iterator. | |
virtual ConstCoordItr | ConstCoordEnd () const override |
Public Member Functions inherited from VAPoR::UnstructuredGrid | |
UnstructuredGrid (const DimsType &vertexDims, const DimsType &faceDims, const DimsType &edgeDims, const DimsType &bs, const std::vector< float * > &blks, size_t topology_dimension, const int *vertexOnFace, const int *faceOnVertex, const int *faceOnFace, Location location, size_t maxVertexPerFace, size_t maxFacePerVertex, long nodeOffset, long cellOffset) | |
UnstructuredGrid (const std::vector< size_t > &vertexDims, const std::vector< size_t > &faceDims, const std::vector< size_t > &edgeDims, const std::vector< size_t > &bs, const std::vector< float * > &blks, size_t topology_dimension, const int *vertexOnFace, const int *faceOnVertex, const int *faceOnFace, Location location, size_t maxVertexPerFace, size_t maxFacePerVertex, long nodeOffset, long cellOffset) | |
UnstructuredGrid ()=default | |
virtual | ~UnstructuredGrid ()=default |
std::string | GetType () const override |
bool | GetCellNodes (const DimsType &cindices, std::vector< DimsType > &nodes) const override |
virtual bool | GetCellNeighbors (const DimsType &cindices, std::vector< DimsType > &cells) const override |
virtual bool | GetNodeCells (const DimsType &indices, std::vector< DimsType > &cells) const override |
size_t | GetMaxVertexPerFace () const override |
size_t | GetMaxVertexPerCell () const override |
const VAPoR::DimsType & | GetNodeDimensions () const override |
const size_t | GetNumNodeDimensions () const override |
const DimsType & | GetCellDimensions () const override |
virtual const size_t | GetNumCellDimensions () const override |
const DimsType & | GetEdgeDimensions () const |
size_t | GetMissingID () const |
void | SetMissingID (size_t v) |
size_t | GetBoundaryID () const |
void | SetBoundaryID (size_t v) |
virtual void | ClampCoord (const CoordType &coords, CoordType &cCoords) const override |
virtual void | ClampCoord (const double coords[3], double cCoords[3]) const override |
virtual void | SetNodeOffset (long offset) override |
virtual void | SetCellOffset (long offset) override |
Public Member Functions inherited from VAPoR::Grid | |
Grid (const std::vector< size_t > &dims, const std::vector< size_t > &bs, const std::vector< float * > &blks, size_t topology_dimension) | |
Grid (const DimsType &dims, const DimsType &bs, const std::vector< float * > &blks, size_t topology_dimension) | |
Grid () | |
virtual | ~Grid ()=default |
const DimsType & | GetDimensions () const |
size_t | GetNumDimensions () const |
virtual DimsType | GetCoordDimensions (size_t dim) const =0 |
virtual std::string | GetType () const =0 |
virtual size_t | GetGeometryDim () const =0 |
virtual const DimsType & | GetNodeDimensions () const =0 |
virtual const size_t | GetNumNodeDimensions () const =0 |
virtual const DimsType & | GetCellDimensions () const =0 |
virtual const size_t | GetNumCellDimensions () const =0 |
const std::vector< size_t > | GetDimensionInBlks () const |
const std::vector< size_t > & | GetBlockSize () const |
const std::vector< float * > & | GetBlks () const |
virtual float | GetValueAtIndex (const DimsType &indices) const |
virtual float | GetValueAtIndex (const std::vector< size_t > &indices) const |
virtual void | SetValue (const DimsType &indices, float value) |
virtual void | SetValue (const size_t indices[3], float value) |
virtual float | AccessIJK (size_t i, size_t j=0, size_t k=0) const |
void | SetValueIJK (size_t i, size_t j, size_t k, float v) |
void | SetValueIJK (size_t i, size_t j, float v) |
void | SetValueIJK (size_t i, float v) |
virtual float | GetValue (const CoordType &coords) const |
virtual float | GetValue (const std::vector< double > &coords) const |
virtual float | GetValue (const double coords[]) const |
virtual float | GetValue (double x, double y) const |
virtual float | GetValue (double x, double y, double z) const |
virtual void | GetUserExtents (CoordType &minu, CoordType &maxu) const |
virtual void | GetUserExtents (double minu[3], double maxu[3]) const |
virtual void | GetUserExtents (std::vector< double > &minu, std::vector< double > &maxu) const |
virtual void | GetBoundingBox (const DimsType &min, const DimsType &max, CoordType &minu, CoordType &maxu) const =0 |
virtual void | GetBoundingBox (const std::vector< size_t > &min, const std::vector< size_t > &max, std::vector< double > &minu, std::vector< double > &maxu) const |
virtual bool | GetEnclosingRegion (const CoordType &minu, const CoordType &maxu, DimsType &min, DimsType &max) const =0 |
virtual float | GetMissingValue () const |
void | SetMissingValue (float missing_value) |
void | SetHasMissingValues (bool flag) |
bool | HasMissingData () const |
virtual bool | HasInvertedCoordinateSystemHandiness () const |
virtual int | GetInterpolationOrder () const |
virtual void | SetInterpolationOrder (int order) |
virtual void | GetUserCoordinates (const DimsType &indices, CoordType &coords) const =0 |
virtual void | GetUserCoordinates (const size_t indices[], double coords[]) const |
virtual void | GetUserCoordinates (const std::vector< size_t > &indices, std::vector< double > &coords) const |
virtual void | GetUserCoordinates (size_t i, double &x, double &y, double &z) const |
virtual void | GetUserCoordinates (size_t i, size_t j, double &x, double &y, double &z) const |
virtual void | GetUserCoordinates (size_t i, size_t j, size_t k, double &x, double &y, double &z) const |
virtual bool | GetIndicesCell (const CoordType &coords, DimsType &indices) const =0 |
virtual bool | GetIndicesCell (const double coords[3], size_t indices[3]) const |
virtual bool | GetIndicesCell (const std::vector< double > &coords, std::vector< size_t > &indices) const |
virtual void | GetRange (float range[2]) const |
virtual void | GetRange (const DimsType &min, const DimsType &max, float range[2]) const |
virtual void | GetRange (std::vector< size_t > min, std::vector< size_t > max, float range[2]) const |
virtual bool | InsideGrid (const CoordType &coords) const =0 |
virtual bool | InsideGrid (const double coords[3]) const |
virtual bool | InsideGrid (const std::vector< double > &coords) const |
virtual bool | GetCellNodes (const DimsType &cindices, std::vector< DimsType > &nodes) const =0 |
virtual bool | GetCellNodes (const size_t cindices[], std::vector< DimsType > &nodes) const |
virtual bool | GetCellNeighbors (const DimsType &cindices, std::vector< DimsType > &cells) const =0 |
virtual bool | GetNodeCells (const DimsType &indices, std::vector< DimsType > &cells) const =0 |
virtual size_t | GetMaxVertexPerFace () const =0 |
virtual size_t | GetMaxVertexPerCell () const =0 |
virtual void | ClampCoord (const CoordType &coords, CoordType &cCoords) const =0 |
virtual void | ClampCoord (const double coords[3], double cCoords[3]) const |
virtual void | ClampIndex (const DimsType &indices, DimsType &cIndices) const |
virtual void | ClampCellIndex (const DimsType &indices, DimsType &cIndices) const |
virtual void | SetPeriodic (const std::vector< bool > &periodic) |
virtual const std::vector< bool > & | GetPeriodic () const |
virtual size_t | GetTopologyDim () const |
virtual long | GetNodeOffset () const |
virtual void | SetNodeOffset (long offset) |
virtual long | GetCellOffset () const |
virtual void | SetCellOffset (long offset) |
virtual DimsType | GetMinAbs () const |
virtual void | SetMinAbs (const DimsType &minAbs) |
virtual ConstCoordItr | ConstCoordBegin () const =0 |
Return constant grid coordinate iterator. | |
virtual ConstCoordItr | ConstCoordEnd () const =0 |
virtual ConstNodeIterator | ConstNodeBegin () const |
virtual ConstNodeIterator | ConstNodeBegin (const CoordType &minu, const CoordType &maxu) const |
virtual ConstNodeIterator | ConstNodeBegin (const std::vector< double > &minu, const std::vector< double > &maxu) const |
virtual ConstNodeIterator | ConstNodeEnd () const |
virtual ConstCellIterator | ConstCellBegin () const |
virtual ConstCellIterator | ConstCellBegin (const CoordType &minu, const CoordType &maxu) const |
virtual ConstCellIterator | ConstCellBegin (const std::vector< double > &minu, const std::vector< double > &maxu) const |
virtual ConstCellIterator | ConstCellEnd () const |
Iterator | begin (const CoordType &minu, const CoordType &maxu) |
Iterator | begin (const std::vector< double > &minu, const std::vector< double > &maxu) |
Iterator | begin () |
Iterator | end () |
ConstIterator | cbegin (const CoordType &minu, const CoordType &maxu) const |
ConstIterator | cbegin (const std::vector< double > &minu, const std::vector< double > &maxu) |
ConstIterator | cbegin () const |
ConstIterator | cend () const |
Static Public Member Functions | |
static std::string | GetClassType () |
Static Public Member Functions inherited from VAPoR::UnstructuredGrid | |
static std::string | GetClassType () |
Static Public Member Functions inherited from VAPoR::Grid | |
static size_t | GetNumDimensions (DimsType dims) |
static DimsType | Dims (const DimsType &min, const DimsType &max) |
static bool | PointInsideBoundingRectangle (const double pt[], const double verts[], int n) |
template<typename T > | |
static void | CopyToArr3 (const std::vector< T > &src, std::array< T, 3 > &dst) |
template<typename T > | |
static void | CopyToArr3 (const T *src, size_t n, std::array< T, 3 > &dst) |
template<typename T > | |
static void | CopyFromArr3 (const std::array< T, 3 > &src, std::vector< T > &dst) |
template<typename T > | |
static void | CopyFromArr3 (const std::array< T, 3 > &src, T *dst) |
Protected Member Functions | |
virtual void | GetUserExtentsHelper (CoordType &minu, CoordType &maxu) const override |
Protected Member Functions inherited from VAPoR::Grid | |
virtual float | GetValueNearestNeighbor (const CoordType &coords) const =0 |
virtual float | GetValueLinear (const CoordType &coords) const =0 |
virtual void | GetUserExtentsHelper (CoordType &minu, CoordType &maxu) const =0 |
virtual float * | GetValuePtrAtIndex (const std::vector< float * > &blks, const DimsType &indices) const |
virtual void | ClampIndex (const std::vector< size_t > &dims, const DimsType indices, DimsType &cIndices) const |
virtual void | ClampIndex (const DimsType &dims, const DimsType indices, DimsType &cIndices) const |
float | BilinearInterpolate (size_t i, size_t j, size_t k, const double xwgt, const double ywgt) const |
float | TrilinearInterpolate (size_t i, size_t j, size_t k, const double xwgt, const double ywgt, const double zwgt) const |
Friends | |
VDF_API friend std::ostream & | operator<< (std::ostream &o, const UnstructuredGridCoordless &sg) |
class for a 2D unstructured grid.
Definition at line 21 of file UnstructuredGridCoordless.h.
|
inline |
Construct a unstructured grid sampling 2D scalar function
Definition at line 26 of file UnstructuredGridCoordless.h.
|
inline |
Definition at line 33 of file UnstructuredGridCoordless.h.
|
default |
|
virtualdefault |
|
inlineoverridevirtual |
Return constant grid coordinate iterator.
Implements VAPoR::Grid.
Definition at line 96 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Implements VAPoR::Grid.
Definition at line 97 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Return the extents of the axis-aligned bounding box enclosign a region
This pure virtual method returns min and max extents, in user coordinates, of the smallest axis-aligned box enclosing the region defined by the grid indices, min
and max
. Every grid point in the range min
to max
will be contained in, or reside on, the box (rectangle) whose extents are given by minu
and maxu
.
min
is greater than the coresponding coordinate of max
, or if max
is outside of the valid dimension range (See GetDimension()).The size of min
and max
must match the grid's dimension as returned by GetDimension()
[in] | min | An array containing the minimum grid indices (offsets). |
[in] | max | An array containing the maximum grid indices (offsets). |
[out] | minu | A two-to-three element array containing the minimum user coordinates. |
[out] | maxu | A two-to-three element array containing the maximum user coordinates. |
Implements VAPoR::Grid.
Definition at line 49 of file UnstructuredGridCoordless.h.
|
inlinestatic |
Definition at line 46 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Return the dimensions of the specified coordinate variable
[in] | dim | An integer between 0 and the return value of GetGeometryDim() - 1, indicating which coordinate dimensions are to be returned. |
if dim
is greater than or equal to GetGeometryDim() - 1 a vector of length one with its single component equal to one is returned.
Implements VAPoR::Grid.
Definition at line 44 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Get bounding indices of grid containing a region
Calculates the starting and ending grid indices of the smallest grid completely containing the rectangular region defined by the user coordinates minu
and maxu
If rectangluar region defined by minu
and maxu
can not be contained the minimum and maximum indices are returned in min
and max
, respectively
[in] | minu | User coordinates of minimum coorner |
[in] | maxu | User coordinates of maximum coorner |
[out] | min | Integer coordinates of minimum coorner |
[out] | max | Integer coordinates of maximum coorner |
Implements VAPoR::Grid.
Definition at line 55 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Get geometric dimension of cells
Returns the geometric dimension of the cells in the mesh. I.e. the number of spatial coordinates for each grid point. Valid values are 0..3. The geometric dimension must be equal to or greater than the topology dimension.
Implements VAPoR::Grid.
Definition at line 67 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Return the indices of the cell containing the specified user coordinates
This method returns the cell ID (index) of the cell containing the specified user coordinates. If any of the input coordinates correspond to periodic dimensions the the coordinate(s) are first re-mapped to lie inside the grid extents as returned by GetUserExtents()
If the specified coordinates lie outside of the grid (are not contained by any cell) the method returns false, otherwise true is returned.
status | true on success, false if the point is not contained by any cell. |
Implements VAPoR::Grid.
Definition at line 59 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Reimplemented from VAPoR::UnstructuredGrid.
Definition at line 47 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Return the user coordinates of a grid point
This method returns the user coordinates of the grid point specified by indices
Results are undefined if indices
is out of range.
[in] | index | Logical index into coordinate array. The dimensionality and range of component values are given by GetNodeDimensions(). The starting value for each component of index is zero. index must contain GetNodeDimensions().size() elements. |
[out] | coord | User coordinates of grid point with indices given by indices . coord must have space for the number of elements returned by GetGeometryDim(). |
Implements VAPoR::Grid.
Definition at line 57 of file UnstructuredGridCoordless.h.
|
inlineoverrideprotectedvirtual |
Implements VAPoR::Grid.
Definition at line 102 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Implements VAPoR::Grid.
Definition at line 65 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Implements VAPoR::Grid.
Definition at line 63 of file UnstructuredGridCoordless.h.
|
inlineoverridevirtual |
Return true if the specified point lies inside the grid
This method can be used to determine if a point expressed in user coordinates reside inside or outside the grid
[in] | coords | User coordinates of point in space |
bool | True if point is inside the grid |
Implements VAPoR::Grid.
Definition at line 61 of file UnstructuredGridCoordless.h.
|
friend |