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);
 
  312  virtual int GetUserCoordinates(
 
  313     size_t i, 
size_t j, 
size_t k, 
 
  314     double *x, 
double *y, 
double *z
 
  332  void getBilinearWeights(
double x, 
double y, 
double z,
 
  333                         double &iwgt, 
double &jwgt) 
const;
 
  353  double bilinearElevation(
size_t i0, 
size_t i1, 
size_t j0, 
size_t j1,
 
  354                         size_t k0, 
double iwgt, 
double jwgt) 
const;
 
  373  double bilinearInterpolation(
size_t i0, 
size_t i1, 
size_t j0, 
size_t j1,
 
  374                         size_t k0, 
double iwgt, 
double jwgt) 
const;
 
  395  double quadraticInterpolation(
double x, 
double y, 
double z) 
const;
 
  408  double verticalLinearInterpolation(
double x, 
double y, 
double z) 
const;
 
  425  virtual void GetIJKIndex(
 
  426     double x, 
double y, 
double z,
 
  427     size_t *i, 
size_t *j, 
size_t *k
 
  452  virtual void GetIJKIndexFloor(
 
  453     double x, 
double y, 
double z,
 
  454     size_t *i, 
size_t *j, 
size_t *k
 
  465  virtual void GetRange(
float range[2]) 
const;
 
  487     const bool periodic[3]
 
  502  virtual bool InsideGrid(
double x, 
double y, 
double z) 
const;
 
  514  virtual void HasPeriodic(
bool *idim, 
bool *jdim, 
bool *kdim)
 const {
 
  515     *idim = _periodic[0]; *jdim = _periodic[1]; *kdim = _periodic[2];
 
  527     _periodic[0] = periodic[0];
 
  528     _periodic[1] = periodic[1];
 
  529     _periodic[2] = periodic[2];
 
  533     bs[0] = _bs[0]; bs[1] = _bs[1]; bs[2] = _bs[2];
 
  548     *x = _delta[0]; *y = _delta[1]; *z = _delta[2];
 
  558     for (
int i=0; i<3; i++) 
if (_min[i]!=_max[i]) rank++;
 
  563                 size_t , 
double , 
double , 
double )
 const 
  593     bool operator==(
const Iterator &other);
 
  594     bool operator!=(
const Iterator &other);
 
  597     double *x, 
double *y, 
double *z
 
  598     )
 const { 
return(_rg->GetUserCoordinates(
 
  599         _x - _rg->_min[0], _y - _rg->_min[1], _z - _rg->_min[2], x,y,z));
 
  631     double *x, 
double *y, 
double *z
 
  632     )
 const { 
return(_rg->GetUserCoordinates(
 
  633         _x - _rg->_min[0], _y - _rg->_min[1], _z - _rg->_min[2], x,y,z));
 
  659  float &_AccessIJK(
float **blks, 
size_t i, 
size_t j, 
size_t k) 
const;
 
  660  void _ClampCoord(
double &x, 
double &y, 
double &z) 
const;
 
  661  void _SetExtents(
const double extents[6]);
 
  676     int _interpolationOrder;    
 
  677     size_t _x, _y, _z, _xb;
 
  684         const size_t bs[3], 
const size_t min[3], 
const size_t max[3],
 
  685         const double extents[6], 
const bool periodic[3], 
float ** blks
 
  687     float _GetValueNearestNeighbor(
double x, 
double y, 
double z) 
const;
 
  688     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 
 
virtual double _interpolateVaryingCoord(size_t, size_t, size_t, double, double, double) 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])