/ScalarField2D.h

http://nscow.googlecode.com/ · C Header · 64 lines · 42 code · 16 blank · 6 comment · 0 complexity · ee7c3f501e839024d3c56f82c64993e8 MD5 · raw file

  1. /*
  2. * ScalarField2D.h
  3. *
  4. * Created on: Apr 25, 2010
  5. * Author: wto
  6. */
  7. #ifndef SCALARFIELD2D_H_
  8. #define SCALARFIELD2D_H_
  9. class ScalarField2D {
  10. public:
  11. ScalarField2D(int xdim, int ydim, double boundryScale = 1, double* data = 0);
  12. ~ScalarField2D();
  13. ScalarField2D(const ScalarField2D&);
  14. ScalarField2D& operator=(const ScalarField2D&);
  15. double& value(int x, int y);
  16. double value(int x, int y) const;
  17. double checkBoundry(int x, int y) const;
  18. void print() const;
  19. double *begin() const;
  20. double *end() const;
  21. int size() const;
  22. double min() const;
  23. double max() const;
  24. double mean() const;
  25. void fill(double val);
  26. const int xdim;
  27. const int ydim;
  28. private:
  29. double *itsData;
  30. bool ownsData;
  31. double itsBoundryScale;
  32. };
  33. inline double *ScalarField2D::begin() const {
  34. return itsData;
  35. }
  36. inline double *ScalarField2D::end() const {
  37. return itsData+size();
  38. }
  39. inline int ScalarField2D::size() const {
  40. return xdim*ydim;
  41. }
  42. inline double& ScalarField2D::value(int x, int y) {
  43. return itsData[(y * xdim) + x];
  44. }
  45. inline double ScalarField2D::value(int x, int y) const {
  46. return itsData[(y * xdim) + x];
  47. }
  48. #endif /* SCALARFIELD2D_H_ */