6 #include <vapor/common.h>
81 const double extents[6],
82 const bool periodic[3],
102 const double extents[6],
103 const bool periodic[3],
124 float &AccessIJK(
size_t i,
size_t j,
size_t k)
const;
147 virtual float GetValue(
double x,
double y,
double z)
const;
164 virtual void GetUserExtents(
double extents[6])
const;
181 virtual void GetBoundingBox(
182 const size_t min[3],
const size_t max[3],
double extents[6]
184 virtual void GetBoundingBox(
185 const std::vector <size_t> &min,
const std::vector <size_t> &max,
186 std::vector <double> &minu, std::vector <double> &maxu
206 virtual void GetEnclosingRegion(
207 const double minu[3],
const double maxu[3],
size_t min[3],
size_t max[3]
220 min[0] = min[1] = min[2] = 0;
221 max[0] = _max[0]-_min[0]; max[1] = _max[1]-_min[1]; max[2] = _max[2]-_min[2];
232 min[0] = _minabs[0]; min[1] = _minabs[1]; min[2] = _minabs[2];
241 void GetDimensions(
size_t dims[3])
const;
259 _missingValue = missing_value; _hasMissing =
true;
292 virtual void SetInterpolationOrder(
int order);
311 virtual int GetUserCoordinates(
312 size_t i,
size_t j,
size_t k,
313 double *x,
double *y,
double *z
331 virtual void GetIJKIndex(
332 double x,
double y,
double z,
333 size_t *i,
size_t *j,
size_t *k
358 virtual void GetIJKIndexFloor(
359 double x,
double y,
double z,
360 size_t *i,
size_t *j,
size_t *k
371 virtual void GetRange(
float range[2])
const;
393 const bool periodic[3]
408 virtual bool InsideGrid(
double x,
double y,
double z)
const;
420 virtual void HasPeriodic(
bool *idim,
bool *jdim,
bool *kdim)
const {
421 *idim = _periodic[0]; *jdim = _periodic[1]; *kdim = _periodic[2];
433 _periodic[0] = periodic[0];
434 _periodic[1] = periodic[1];
435 _periodic[2] = periodic[2];
439 bs[0] = _bs[0]; bs[1] = _bs[1]; bs[2] = _bs[2];
454 *x = _delta[0]; *y = _delta[1]; *z = _delta[2];
464 for (
int i=0; i<3; i++)
if (_min[i]!=_max[i]) rank++;
495 bool operator==(
const Iterator &other);
496 bool operator!=(
const Iterator &other);
499 double *x,
double *y,
double *z
500 )
const {
return(_rg->GetUserCoordinates(
501 _x - _rg->_min[0], _y - _rg->_min[1], _z - _rg->_min[2], x,y,z));
533 double *x,
double *y,
double *z
534 )
const {
return(_rg->GetUserCoordinates(
535 _x - _rg->_min[0], _y - _rg->_min[1], _z - _rg->_min[2], x,y,z));
561 float &_AccessIJK(
float **blks,
size_t i,
size_t j,
size_t k)
const;
562 void _ClampCoord(
double &x,
double &y,
double &z)
const;
563 void _SetExtents(
const double extents[6]);
578 int _interpolationOrder;
579 size_t _x, _y, _z, _xb;
586 const size_t bs[3],
const size_t min[3],
const size_t max[3],
587 const double extents[6],
const bool periodic[3],
float ** blks
589 float _GetValueNearestNeighbor(
double x,
double y,
double z)
const;
590 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])