VAPOR3 3.9.4
Public Member Functions | Static Public Member Functions | List of all members
VAPoR::ArbitrarilyOrientedRegularGrid Class Reference

#include <ArbitrarilyOrientedRegularGrid.h>

Inheritance diagram for VAPoR::ArbitrarilyOrientedRegularGrid:
VAPoR::RegularGrid VAPoR::StructuredGrid VAPoR::Grid

Public Member Functions

 ArbitrarilyOrientedRegularGrid (const VAPoR::Grid *grid3d, planeDescription &pd, const DimsType &dims)
 
 ArbitrarilyOrientedRegularGrid ()=default
 
virtual ~ArbitrarilyOrientedRegularGrid ()
 
std::string GetType () const override
 
virtual void GetUserCoordinates (const DimsType &indices, CoordType &coords) const override
 
virtual void GetUserCoordinates (size_t i, size_t j, size_t k, double &x, double &y, double &z)=delete
 
virtual void GetUserExtents (CoordType &minu, CoordType &maxu)=delete
 
virtual void GetBoundingBox (const DimsType &min, const DimsType &max, CoordType &minu, CoordType &maxu)=delete
 
virtual bool GetEnclosingRegion (const CoordType &minu, const CoordType &maxu, DimsType &min, DimsType &max)=delete
 
virtual bool GetIndicesCell (const CoordType &coords, DimsType &indices)=delete
 
virtual bool InsideGrid (const CoordType &coords)=delete
 
virtual void ClampCoord (const CoordType &coords, CoordType &cCoords)=delete
 
- Public Member Functions inherited from VAPoR::RegularGrid
 RegularGrid (const DimsType &dims, const DimsType &bs, const std::vector< float * > &blks, const CoordType &minu, const CoordType &maxu)
 
 RegularGrid (const std::vector< size_t > &dims, const std::vector< size_t > &bs, const std::vector< float * > &blks, const std::vector< double > &minu, const std::vector< double > &maxu)
 
 RegularGrid ()=default
 
virtual ~RegularGrid ()=default
 
virtual size_t GetGeometryDim () const override
 
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
 
virtual void GetUserCoordinates (const DimsType &indices, CoordType &coords) const override
 
virtual bool GetIndicesCell (const CoordType &coords, DimsType &indices) const override
 
virtual bool InsideGrid (const CoordType &coords) const override
 
virtual ConstCoordItr ConstCoordBegin () const override
 Return constant grid coordinate iterator.
 
virtual ConstCoordItr ConstCoordEnd () const override
 
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
 
- Public Member Functions inherited from VAPoR::StructuredGrid
 StructuredGrid (const std::vector< size_t > &dims, const std::vector< size_t > &bs, const std::vector< float * > &blks)
 
 StructuredGrid (const DimsType &dims, const DimsType &bs, const std::vector< float * > &blks)
 
 StructuredGrid ()=default
 
virtual ~StructuredGrid ()=default
 
std::string GetType () const override
 
const DimsTypeGetNodeDimensions () const override
 
const size_t GetNumNodeDimensions () const override
 
const DimsTypeGetCellDimensions () const override
 
const size_t GetNumCellDimensions () const override
 
virtual 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 &cindices, std::vector< DimsType > &cells) const override
 
virtual bool GetEnclosingRegion (const CoordType &minu, const CoordType &maxu, DimsType &min, DimsType &max) const override
 
size_t GetMaxVertexPerFace () const override
 
size_t GetMaxVertexPerCell () const override
 
virtual void ClampCoord (const CoordType &coords, CoordType &cCoords) const override
 
virtual void ClampCoord (const double coords[3], double cCoords[3]) const override
 
virtual bool HasInvertedCoordinateSystemHandiness () const override
 
virtual bool GetCellNodes (const DimsType &cindices, std::vector< DimsType > &nodes) const=0
 
virtual bool GetCellNodes (const size_t cindices[], std::vector< DimsType > &nodes) const
 
- 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 DimsTypeGetDimensions () 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 DimsTypeGetNodeDimensions () const =0
 
virtual const size_t GetNumNodeDimensions () const =0
 
virtual const DimsTypeGetCellDimensions () 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 glm::vec3 GetNormalFromRotations (const std::vector< double > &rotations)
 
static std::pair< float, float > GetOffsetRange (const planeDescription &pd)
 
- Static Public Member Functions inherited from VAPoR::RegularGrid
static std::string GetClassType ()
 
- Static Public Member Functions inherited from VAPoR::StructuredGrid
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)
 

Additional Inherited Members

- Public Types inherited from VAPoR::Grid
typedef const CoordType ConstCoordType
 
typedef Grid::PolyIterator< ConstCoordTypeConstCoordItr
 
typedef Grid::AbstractIterator< ConstCoordTypeConstCoordItrAbstract
 
typedef const DimsType ConstIndexType
 
typedef Grid::PolyIterator< ConstIndexTypeConstNodeIterator
 
typedef Grid::AbstractIterator< ConstIndexTypeConstNodeIteratorAbstract
 
typedef Grid::PolyIterator< ConstIndexTypeConstCellIterator
 Cell index iterator. Iterates over grid cell indices.
 
typedef Grid::AbstractIterator< ConstIndexTypeConstCellIteratorAbstract
 
typedef Grid::ForwardIterator< GridIterator
 
typedef Grid::ForwardIterator< Grid const > ConstIterator
 
- Protected Member Functions inherited from VAPoR::RegularGrid
virtual float GetValueNearestNeighbor (const CoordType &coords) const override
 
virtual float GetValueLinear (const CoordType &coords) const override
 
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
 

Detailed Description

Create a 2D RegularGrid that is rotated along an arbitrary orientation. This new grid samples a given 3D Grid object along a plane, through that grid's extents. The "planeDescription" variable includes parameters that define the 2D plane's origin, rotation, and valid extents. Points on the 2D RegularGrid that are outside of the valid extents will be assigned as missingValues. This Grid class will always be valid, even if the the plane's description lies outside of the box. In this case, the plane will contain all missing values.

Note: The boxMin and boxMax values within the planeDescription should come from the current RenderParams' Box class.

Parameters
[in]grid3dA variable's 3D grid to be sampled along a plane, to generate a 2D grid object
[in]descriptionA set of std::vector<dobule> values that define the origin, rotation, and extents of the returned 2D grid
[in]dimsThe sampling rate that the new grid will be defined upon, along its X and Y axes
[out]dataAn array of sideSize*sideSize values that contain floating point values of the sampled data.

Definition at line 41 of file ArbitrarilyOrientedRegularGrid.h.

Constructor & Destructor Documentation

◆ ArbitrarilyOrientedRegularGrid() [1/2]

VAPoR::ArbitrarilyOrientedRegularGrid::ArbitrarilyOrientedRegularGrid ( const VAPoR::Grid grid3d,
planeDescription pd,
const DimsType dims 
)

◆ ArbitrarilyOrientedRegularGrid() [2/2]

VAPoR::ArbitrarilyOrientedRegularGrid::ArbitrarilyOrientedRegularGrid ( )
default

◆ ~ArbitrarilyOrientedRegularGrid()

virtual VAPoR::ArbitrarilyOrientedRegularGrid::~ArbitrarilyOrientedRegularGrid ( )
virtual

Member Function Documentation

◆ ClampCoord()

virtual void VAPoR::ArbitrarilyOrientedRegularGrid::ClampCoord ( const CoordType coords,
CoordType cCoords 
)
virtualdelete

◆ GetBoundingBox()

virtual void VAPoR::ArbitrarilyOrientedRegularGrid::GetBoundingBox ( const DimsType min,
const DimsType max,
CoordType minu,
CoordType maxu 
)
virtualdelete

◆ GetClassType()

static std::string VAPoR::ArbitrarilyOrientedRegularGrid::GetClassType ( )
inlinestatic

Definition at line 52 of file ArbitrarilyOrientedRegularGrid.h.

◆ GetEnclosingRegion()

virtual bool VAPoR::ArbitrarilyOrientedRegularGrid::GetEnclosingRegion ( const CoordType minu,
const CoordType maxu,
DimsType min,
DimsType max 
)
virtualdelete

◆ GetIndicesCell()

virtual bool VAPoR::ArbitrarilyOrientedRegularGrid::GetIndicesCell ( const CoordType coords,
DimsType indices 
)
virtualdelete

◆ GetNormalFromRotations()

static glm::vec3 VAPoR::ArbitrarilyOrientedRegularGrid::GetNormalFromRotations ( const std::vector< double > &  rotations)
static

◆ GetOffsetRange()

static std::pair< float, float > VAPoR::ArbitrarilyOrientedRegularGrid::GetOffsetRange ( const planeDescription pd)
static

◆ GetType()

std::string VAPoR::ArbitrarilyOrientedRegularGrid::GetType ( ) const
inlineoverridevirtual

Implements VAPoR::Grid.

Definition at line 53 of file ArbitrarilyOrientedRegularGrid.h.

◆ GetUserCoordinates() [1/2]

virtual void VAPoR::ArbitrarilyOrientedRegularGrid::GetUserCoordinates ( const DimsType indices,
CoordType coords 
) const
overridevirtual

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.

Parameters
[in]indexLogical 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]coordUser coordinates of grid point with indices given by indices. coord must have space for the number of elements returned by GetGeometryDim().

Reimplemented from VAPoR::RegularGrid.

◆ GetUserCoordinates() [2/2]

virtual void VAPoR::ArbitrarilyOrientedRegularGrid::GetUserCoordinates ( size_t  i,
size_t  j,
size_t  k,
double &  x,
double &  y,
double &  z 
)
virtualdelete

◆ GetUserExtents()

virtual void VAPoR::ArbitrarilyOrientedRegularGrid::GetUserExtents ( CoordType minu,
CoordType maxu 
)
virtualdelete

◆ InsideGrid()

virtual bool VAPoR::ArbitrarilyOrientedRegularGrid::InsideGrid ( const CoordType coords)
virtualdelete

The documentation for this class was generated from the following file: