00001 00002 00008 /* 00009 */ 00011 00012 #ifndef __SSF_INTERPOLATOR_H__ 00013 #define __SSF_INTERPOLATOR_H__ 00014 #ifndef TRUE 00015 #define TRUE 1 00016 #define FALSE 0 00017 #endif 00018 00019 #include <Matrix.h> 00020 00021 namespace O_SESSAME { 00022 00024 00052 class Interpolator 00053 { 00054 public: 00056 virtual ~Interpolator() { } 00057 00069 virtual void Interpolate(const Vector& _timePoints, const Matrix& _dataPoints) = 0; 00070 00077 virtual Vector Evaluate(const double& _inputPoint) = 0; 00083 virtual int GetNumberDataPoints() = 0; 00084 00097 virtual Interpolator* NewPointer() = 0; 00098 00111 virtual Interpolator* Clone() = 0; 00112 00116 virtual bool GetValid() {return m_Valid;}; 00117 00118 protected: 00122 virtual void SetValid(const bool& _newValidValue) {m_Valid = _newValidValue;}; 00123 00128 Interpolator() : m_Valid(FALSE) { }; 00129 00130 private: 00132 bool m_Valid; 00133 }; 00134 } // close namespace O_SESSAME 00135 00136 #endif 00137 00138 00139 // Do not change the comments below - they will be added automatically by CVS 00140 /***************************************************************************** 00141 * $Log: Interpolator.h,v $ 00142 * Revision 1.3 2003/06/06 00:34:47 nilspace 00143 * ? 00144 * 00145 * Revision 1.2 2003/05/15 16:05:44 nilspace 00146 * Added a TRUE and FALSE define. Move to a math header file. 00147 * 00148 * Revision 1.1 2003/05/13 18:41:23 nilspace 00149 * Initial submission. 00150 * 00151 * 00152 ******************************************************************************/