00001 #ifndef SMOOTHER_H 00002 #define SMOOTHER_H 00003 00004 #include "ProcessModule.h" 00005 #include "../framedata/IFrameData.h" 00006 #include "../util/Vector.h" 00007 #include "../util/ConfigSection.h" 00008 #include <list> 00009 00011 00016 class Smoother : public ProcessModule 00017 { 00018 public: 00023 Smoother(size_t windowSize, AbstractModule *successor); 00024 00029 Smoother(ConfigSection *config, AbstractModule *successor); 00030 00032 virtual ~Smoother() {} 00040 virtual void processFrameData(IFrameData *data); 00041 00043 const size_t getWindowSize() const { return m_windowSize; } 00044 00046 void setWindowSize(const size_t wz) { m_windowSize = wz; } 00047 00048 private: 00049 size_t m_windowSize; 00050 typedef std::list<Vector3d> VectorList; 00051 VectorList m_frameHistory; 00052 }; 00053 00054 #endif