5 #include <vapor/common.h>
80 const double extents[6],
81 const bool periodic[3],
101 const double extents[6],
102 const bool periodic[3],
123 float &AccessIJK(
size_t i,
size_t j,
size_t k)
const;
146 virtual float GetValue(
double x,
double y,
double z)
const;
163 virtual void GetUserExtents(
double extents[6])
const;
180 virtual void GetBoundingBox(
181 const size_t min[3],
const size_t max[3],
double extents[6]
201 virtual void GetEnclosingRegion(
202 const double minu[3],
const double maxu[3],
size_t min[3],
size_t max[3]
215 min[0] = min[1] = min[2] = 0;
216 max[0] = _max[0]-_min[0]; max[1] = _max[1]-_min[1]; max[2] = _max[2]-_min[2];
227 min[0] = _minabs[0]; min[1] = _minabs[1]; min[2] = _minabs[2];
236 void GetDimensions(
size_t dims[3])
const;
254 _missingValue = missing_value; _hasMissing =
true;
287 virtual void SetInterpolationOrder(
int order);
306 virtual int GetUserCoordinates(
307 size_t i,
size_t j,
size_t k,
308 double *x,
double *y,
double *z
326 virtual void GetIJKIndex(
327 double x,
double y,
double z,
328 size_t *i,
size_t *j,
size_t *k
353 virtual void GetIJKIndexFloor(
354 double x,
double y,
double z,
355 size_t *i,
size_t *j,
size_t *k
366 virtual void GetRange(
float range[2])
const;
388 const bool periodic[3]
403 virtual bool InsideGrid(
double x,
double y,
double z)
const;
415 virtual void HasPeriodic(
bool *idim,
bool *jdim,
bool *kdim)
const {
416 *idim = _periodic[0]; *jdim = _periodic[1]; *kdim = _periodic[2];
428 _periodic[0] = periodic[0];
429 _periodic[1] = periodic[1];
430 _periodic[2] = periodic[2];
434 bs[0] = _bs[0]; bs[1] = _bs[1]; bs[2] = _bs[2];
449 *x = _delta[0]; *y = _delta[1]; *z = _delta[2];
479 bool operator==(
const Iterator &other);
480 bool operator!=(
const Iterator &other);
483 double *x,
double *y,
double *z
484 )
const {
return(_rg->GetUserCoordinates(
485 _x - _rg->_min[0], _y - _rg->_min[1], _z - _rg->_min[2], x,y,z));
517 double *x,
double *y,
double *z
518 )
const {
return(_rg->GetUserCoordinates(
519 _x - _rg->_min[0], _y - _rg->_min[1], _z - _rg->_min[2], x,y,z));
545 float &_AccessIJK(
float **blks,
size_t i,
size_t j,
size_t k)
const;
546 void _ClampCoord(
double &x,
double &y,
double &z)
const;
547 void _SetExtents(
const double extents[6]);
562 int _interpolationOrder;
563 size_t _x, _y, _z, _xb;
570 const size_t bs[3],
const size_t min[3],
const size_t max[3],
571 const double extents[6],
const bool periodic[3],
float ** blks
573 float _GetValueNearestNeighbor(
double x,
double y,
double z)
const;
574 float _GetValueLinear(
double x,
double y,
double z)
const;
bool HasMissingData() const
virtual void GetIJKOrigin(size_t min[3]) const
virtual void HasPeriodic(bool *idim, bool *jdim, bool *kdim) const
virtual void GetIJKMinMax(size_t min[3], size_t max[3]) const
ConstIterator end() const
virtual void GetMinCellExtents(double *x, double *y, double *z) const
void GetBlockSize(size_t bs[3]) const
void SetMissingValue(float missing_value)
size_t GetNumBlks() const
int GetUserCoordinates(double *x, double *y, double *z) const
float GetMissingValue() const
ConstIterator begin() const
virtual int GetInterpolationOrder() const
int GetUserCoordinates(double *x, double *y, double *z) const
virtual void SetPeriodic(const bool periodic[3])