interpolator.h

00001 #ifndef INTERPOLATOR_H
00002 #define INTERPOLATOR_H
00003 
00004 #include "ddf/ddf.h"
00005 
00006 #include "afltypes.h"
00007 #include "point.h"
00008 #include "value.h"
00009 #include "boundary.h"
00010 
00011 namespace afl
00012 {
00013 
00017     class Interpolator
00018     {
00019 
00021         public:
00022             virtual ~Interpolator() { } 
00029              virtual Value interpolate( const Point& x ) const = 0;
00030 
00035              virtual void toXML( std::ostream& doc ) const;
00036 
00041              virtual Interpolator* clone(  ) = 0;
00042 
00048              virtual void boundary( const Boundary* boundary, const Field* parent );
00049               
00053              virtual void invalidateTriangulation(  );
00054 
00058             virtual const std::string& getImplementation(  ) const = 0;
00059              
00063             virtual const std::string& getMethod(  ) const = 0;
00064 
00069             void setParentField( const Field* parent );
00070 
00072         protected:
00078             Interpolator( const Field* f, const Parameters& params );
00083             Interpolator(  );
00084 
00085         protected:
00089             const ddf::PropertySet* _pset;
00093             const Field* _parent;
00097             const Boundary* _boundary;
00101             mutable bool _validTriangulation;
00102     };
00103 
00104 };
00105 
00106 #endif // INTERPOLATOR_H

Generated on Fri Dec 22 07:17:50 2006 for afl by  doxygen 1.4.6