1#ifndef _UnstructuredGridLayered_
2#define _UnstructuredGridLayered_
12 #pragma warning(disable : 4661 4251)
28 const int *faceOnVertex,
const int *faceOnFace,
33 UnstructuredGridLayered(
const std::vector<size_t> &vertexDims,
const std::vector<size_t> &faceDims,
const std::vector<size_t> &edgeDims,
const std::vector<size_t> &bs,
34 const std::vector<float *> &blks,
const int *vertexOnFace,
const int *faceOnVertex,
const int *faceOnFace,
42 std::shared_ptr<const QuadTreeRectangleP>
GetQuadTreeRectangle()
const {
return (_ug2d.GetQuadTreeRectangle()); }
48 static std::string
GetClassType() {
return (
"UnstructuredLayered"); }
49 std::string
GetType()
const override {
return (GetClassType()); }
80 virtual void next(
const long &offset);
82 virtual const void *
address()
const {
return this; };
84 virtual bool equal(
const void *rhs)
const
88 return (_itr2D == itrptr->_itr2D && _zCoordItr == itrptr->_zCoordItr);
91 virtual std::unique_ptr<ConstCoordItrAbstract>
clone()
const {
return std::unique_ptr<ConstCoordItrAbstract>(
new ConstCoordItrULayered(*
this)); };
114 bool _insideGrid(
const CoordType &coords,
DimsType &cindices, std::vector<size_t> &nodes2D, std::vector<double> &lambda,
float zwgt[2])
const;
const CoordType ConstCoordType
class for a 2D unstructured grid.
class for a 2D unstructured grid.
virtual ~ConstCoordItrULayered()
virtual ConstCoordType & deref() const
ConstCoordItrULayered(const ConstCoordItrULayered &rhs)
virtual std::unique_ptr< ConstCoordItrAbstract > clone() const
virtual const void * address() const
ConstCoordItrULayered(const UnstructuredGridLayered *ug, bool begin)
virtual bool equal(const void *rhs) const
virtual void next(const long &offset)
class for a Layered unstructured grid.
std::string GetType() const override
virtual ~UnstructuredGridLayered()=default
UnstructuredGridLayered(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, const int *vertexOnFace, const int *faceOnVertex, const int *faceOnFace, Location location, size_t maxVertexPerFace, size_t maxFacePerVertex, long nodeOffset, long cellOffset, const UnstructuredGridCoordless &xug, const UnstructuredGridCoordless &yug, const UnstructuredGridCoordless &zug, std::shared_ptr< const QuadTreeRectangleP > qtr)
virtual ConstCoordItr ConstCoordEnd() const override
virtual DimsType GetCoordDimensions(size_t dim) const override
UnstructuredGridLayered(const DimsType &vertexDims, const DimsType &faceDims, const DimsType &edgeDims, const DimsType &bs, const std::vector< float * > &blks, const int *vertexOnFace, const int *faceOnVertex, const int *faceOnFace, Location location, size_t maxVertexPerFace, size_t maxFacePerVertex, long nodeOffset, long cellOffset, const UnstructuredGridCoordless &xug, const UnstructuredGridCoordless &yug, const UnstructuredGridCoordless &zug, std::shared_ptr< const QuadTreeRectangleP > qtr)
virtual void GetBoundingBox(const DimsType &min, const DimsType &max, CoordType &minu, CoordType &maxu) const override
bool InsideGrid(const CoordType &coords) const override
float GetValueLinear(const CoordType &coords) const override
virtual void GetUserCoordinates(const DimsType &indices, CoordType &coords) const override
virtual ConstCoordItr ConstCoordBegin() const override
Return constant grid coordinate iterator.
std::shared_ptr< const QuadTreeRectangleP > GetQuadTreeRectangle() const
virtual size_t GetGeometryDim() const override
float GetValueNearestNeighbor(const CoordType &coords) const override
UnstructuredGridLayered()=default
virtual void GetUserExtentsHelper(CoordType &minu, CoordType &maxu) const override
bool GetIndicesCell(const CoordType &coords, DimsType &indices) const override
bool GetEnclosingRegion(const CoordType &minu, const CoordType &maxu, DimsType &min, DimsType &max) const override
VDF_API friend std::ostream & operator<<(std::ostream &o, const UnstructuredGridLayered &sg)
static std::string GetClassType()
Abstract base class for a 2D or 3D unstructured grid.
std::array< double, 3 > CoordType
Type for specifying floating point coordinates.
std::array< size_t, 3 > DimsType
Type for specifying integer indices.