1#ifndef _UnstructuredGrid_
2#define _UnstructuredGrid_
11 #pragma warning(disable : 4661 4251)
118 const int *vertexOnFace,
const int *faceOnVertex,
const int *faceOnFace,
120 size_t maxVertexPerFace,
size_t maxFacePerVertex,
long nodeOffset,
long cellOffset
123 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,
124 size_t topology_dimension,
const int *vertexOnFace,
const int *faceOnVertex,
const int *faceOnFace,
126 size_t maxVertexPerFace,
size_t maxFacePerVertex,
long nodeOffset,
long cellOffset
134 std::string
GetType()
const override {
return (GetClassType()); }
148 size_t GetMaxVertexPerCell()
const override {
return ((GetTopologyDim() == 3) ? 2 * GetMaxVertexPerFace() : GetMaxVertexPerFace()); };
183 virtual void ClampCoord(
const double coords[3],
double cCoords[3])
const override { Grid::ClampCoord(coords, cCoords); }
214 void _unstructuredGrid(
const DimsType &vertexDims,
const DimsType &faceDims,
const DimsType &edgeDims,
const DimsType &bs,
const std::vector<float *> &blks,
size_t topology_dimension,
215 const int *vertexOnFace,
const int *faceOnVertex,
const int *faceOnFace,
217 size_t maxVertexPerFace,
size_t maxFacePerVertex,
long nodeOffset,
long cellOffset
Abstract base class for a 2D or 3D structured or unstructured grid.
Abstract base class for a 2D or 3D unstructured grid.
virtual ~UnstructuredGrid()=default
virtual void ClampCoord(const CoordType &coords, CoordType &cCoords) const override
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)
std::string GetType() const override
virtual void SetNodeOffset(long offset) override
const size_t GetNumNodeDimensions() const override
void SetMissingID(size_t v)
bool GetCellNodes(const DimsType &cindices, std::vector< DimsType > &nodes) const override
VDF_API friend std::ostream & operator<<(std::ostream &o, const UnstructuredGrid &sg)
void SetBoundaryID(size_t v)
size_t GetMaxVertexPerFace() const override
const DimsType & GetCellDimensions() const override
UnstructuredGrid()=default
size_t GetMaxVertexPerCell() const override
static std::string GetClassType()
virtual bool GetCellNeighbors(const DimsType &cindices, std::vector< DimsType > &cells) const override
virtual void ClampCoord(const double coords[3], double cCoords[3]) const override
const VAPoR::DimsType & GetNodeDimensions() const override
const DimsType & GetEdgeDimensions() const
virtual void SetCellOffset(long offset) override
const int * _faceOnVertex
const int * _vertexOnFace
virtual bool GetNodeCells(const DimsType &indices, std::vector< DimsType > &cells) const override
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)
size_t GetBoundaryID() const
virtual const size_t GetNumCellDimensions() const override
size_t GetMissingID() const
std::array< double, 3 > CoordType
Type for specifying floating point coordinates.
std::array< size_t, 3 > DimsType
Type for specifying integer indices.