Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __INTERPOLATION_HXX__
00021 #define __INTERPOLATION_HXX__
00022
00023 #include "INTERPKERNELDefines.hxx"
00024 #include "InterpolationOptions.hxx"
00025 #include "InterpKernelException.hxx"
00026
00027 #include <string>
00028
00029 namespace INTERP_KERNEL
00030 {
00031 template<class TrueMainInterpolator>
00032 class Interpolation : public InterpolationOptions
00033 {
00034 public:
00035 Interpolation() { }
00036 Interpolation(const InterpolationOptions& io) :InterpolationOptions(io){}
00037
00038 template<class MatrixType, class MyMeshType>
00039 int interpolateMeshes(const MyMeshType& meshS, const MyMeshType& meshT, MatrixType& result)
00040 { return asLeaf().interpolateMeshes(meshS,meshT,result); }
00041 template<class MyMeshType, class MatrixType>
00042 int fromIntegralUniform(const MyMeshType& meshT, MatrixType& result, const char *method) { return fromToIntegralUniform(false,meshT,result,method); }
00043 template<class MyMeshType, class MatrixType>
00044 int toIntegralUniform(const MyMeshType& meshS, MatrixType& result, const char *method) { return fromToIntegralUniform(true,meshS,result,method); }
00045 static void checkAndSplitInterpolationMethod(const char *method, std::string& srcMeth, std::string& trgMeth) throw(INTERP_KERNEL::Exception);
00046 protected:
00047 template<class MyMeshType, class MatrixType>
00048 int fromToIntegralUniform(bool fromTo, const MyMeshType& mesh, MatrixType& result, const char *method);
00049 protected:
00050 TrueMainInterpolator& asLeaf() { return static_cast<TrueMainInterpolator&>(*this); }
00051 };
00052 }
00053
00054 #endif