Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
rasterinterpolator.h
1 #ifndef GRIDINTERPOLATOR_H
2 #define GRIDINTERPOLATOR_H
3 
4 namespace Ilwis {
5 class Grid;
6 
7 class KERNELSHARED_EXPORT RasterInterpolator
8 {
9 public:
10  enum InterpolationMethod{ipNEARESTNEIGHBOUR, ipBILINEAR, ipBICUBIC};
11 
12  RasterInterpolator(const IRasterCoverage& raster, int method) ;
13  double pix2value(const Pixeld &pix);
14  double coord2value(const Coordinate& crd);
15 
16 private:
17  double bilinear(const Pixeld &pix) ;
18  double bicubic(const Pixeld &pix) ;
19  double bicubicPolynom(double values[], const double &delta);
20  double bicubicResult(long row, long column, long z, const double &deltaCol);
21  bool resolveRealUndefs(double values[]);
22  long _nbrows[4], _nbcols[4];
23  double _weight[4];
24  double _yvalues[4], _xvalues[4];
25  IRasterCoverage _gcoverage;
26  Grid *_grid; // for peformance reason we store this; will be valid aslong as the coverage is there
27  IGeoReference _grf;
28  int _method;
29  bool _valid;
30 };
31 }
32 
33 #endif // GRIDINTERPOLATOR_H