00001 #ifndef _TORSTENSFILTERS_H_
00002 #define _TORSTENSFILTERS_H_
00003
00004 #include "Filter.h"
00005 #include "tfilters.h"
00006
00007
00008 namespace SpecFVRNS
00009 {
00010
00011
00012
00013 #define MAX_TFILTER_EXTENT 10
00014
00015 class TorstensFilters : public Filter
00016 {
00017 public:
00018 TorstensFilters();
00019 TorstensFilters(TorstensFilters& l);
00020 TorstensFilters(int (*filter)(float a, float t, float *coeff), float a = 0.0f);
00021 virtual ~TorstensFilters();
00022
00023 void SetFilter(int (*filter)(float a, float t, float *coeff), float a = 0.0f);
00024
00025 virtual dword getWidth(void);
00026
00027 TorstensFilters& operator=(TorstensFilters& rhs);
00028
00029 protected:
00030 virtual void MakeWeights(void);
00031
00032 private:
00033 void MakeWeightCube(float* w, float ti, float tj, float tk);
00034
00035 private:
00036 int (*m_Filter)(float a, float t, float *coeff);
00037 dword m_FilterWidth;
00038 float m_a;
00039 };
00040
00041 }
00042
00043 #endif