src/CachedInterpolation.h

Go to the documentation of this file.
00001 /*
00002  * Fimex
00003  * 
00004  * (C) Copyright 2008, met.no
00005  *
00006  * Project Info:  https://wiki.met.no/fimex/start
00007  *
00008  * This library is free software; you can redistribute it and/or modify it
00009  * under the terms of the GNU Lesser General Public License as published by
00010  * the Free Software Foundation; either version 2.1 of the License, or
00011  * (at your option) any later version.
00012  *
00013  * This library is distributed in the hope that it will be useful, but
00014  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
00015  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
00016  * License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
00021  * USA.
00022  */
00023 
00024 #ifndef CACHEDINTERPOLATION_H_
00025 #define CACHEDINTERPOLATION_H_
00026 
00027 #include <boost/shared_ptr.hpp>
00028 #include <boost/shared_array.hpp>
00029 #include "interpolation.h"
00030 #include "Data.h"
00031 
00032 namespace MetNoFimex
00033 {
00034 
00039 class CachedInterpolation
00040 {
00041 private:
00042         std::vector<double> pointsOnXAxis;
00043         std::vector<double> pointsOnYAxis;
00044         size_t inX;
00045         size_t inY;
00046         size_t outX;
00047         size_t outY;
00048         int (*func)(const float* infield, float* outvalues, const double x, const double y, const int ix, const int iy, const int iz);
00049 public:
00050         CachedInterpolation() : inX(0), inY(0), outX(0), outY(0), func(mifi_get_values_f) {}
00060         CachedInterpolation(int funcType, std::vector<double> pointsOnXAxis, std::vector<double> pointsOnYAxis, size_t inX, size_t inY, size_t outX, size_t outY);
00061         virtual ~CachedInterpolation() {}
00068         boost::shared_ptr<Data> interpolateValues(boost::shared_ptr<Data> inData, float badValue = MIFI_UNDEFINED_F);
00069 };
00070 
00071 
00072 
00073 }
00074 
00075 #endif /*CACHEDINTERPOLATION_H_*/

Generated on Thu Jun 5 14:58:22 2008 for MI - Fimex by  doxygen 1.4.6