00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef CACHEDVECTORREPROJECTION_H_
00025 #define CACHEDVECTORREPROJECTION_H_
00026
00027 #include <boost/shared_ptr.hpp>
00028 #include "Data.h"
00029 #include "interpolation.h"
00030
00031 namespace MetNoFimex
00032 {
00033
00034 class CachedVectorReprojection
00035 {
00036 public:
00037 CachedVectorReprojection() : method(MIFI_OK), matrix(new double[0]), ox(0), oy(0) {}
00038 CachedVectorReprojection(int method, boost::shared_array<double> matrix, int ox, int oy) : method(method), matrix(matrix), ox(ox), oy(oy) {}
00039 virtual ~CachedVectorReprojection() {}
00046 void reprojectValues(boost::shared_ptr<Data>& uValues, boost::shared_ptr<Data>& vValues, float uBadValue = MIFI_UNDEFINED_F, float vBadValue = MIFI_UNDEFINED_F) const throw(CDMException);
00047
00048 size_t getXSize() const {return ox;}
00049
00050 size_t getYSize() const {return oy;}
00051
00052 private:
00053 int method;
00054 boost::shared_array<double> matrix;
00055 size_t ox;
00056 size_t oy;
00057 };
00058
00059 }
00060
00061 #endif