src/CachedVectorReprojection.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 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         // @return size of the spatial plane in x-direction
00048         size_t getXSize() const {return ox;}
00049         // @return size of the spatial plane in y-direction
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 /*CACHEDVECTORREPROJECTION_H_*/

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