00001 #ifndef INTERPOLATIONFACTORY_H_PROTECTOR 00002 #define INTERPOLATIONFACTORY_H_PROTECTOR 00003 00004 #include "xmlnode.h" 00005 #include "interpolator.h" 00006 00007 #include <vector> 00008 00009 namespace afl 00010 { 00011 class Interpolator; 00012 00016 class InterpolationFactory 00017 { 00018 public: 00030 static Interpolator* interpolation( XMLNode* interpolation, 00031 Field* field, const ddf::PropertySet* pset ); 00032 00042 static Interpolator* interpolation( const std::string& function, 00043 Field* field, const ddf::PropertySet* pset ); 00044 00052 static Interpolator* analyticInterpolation( Field* field, 00053 const std::string& formula ); 00054 00064 static Interpolator* analyticInterpolation( 00065 const std::vector<std::string>& formulas, 00066 Field* field, size_t columns = 1 ); 00067 00068 private: 00079 static Interpolator* analyticInterpolation( Field* field, 00080 XMLNode* interpolation ); 00081 }; 00082 00083 } 00084 00085 #endif 00086