Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

vuFourierFilter.h

Go to the documentation of this file.
00001 #ifndef _VU_FVR_FILTER_H_
00002 #define _VU_FVR_FILTER_H_
00003 
00004 #include "vuLinAlg/vuVector.h"
00005 #include "vuSimpleTypes.h"
00006 #include "vuMisc/vuFilter.h"
00007 
00008 #define VU_FVR_FILTER_TABLE_SIZE  20
00009 #define VU_FVR_FILTER_TABLE_MAX   19
00010 
00011 class vuFourierFilter : public vuFilter
00012 {
00013 public:
00014         inline vuFourierFilter();
00015         inline vuFourierFilter(const vuString& filterName);
00016         inline vuFourierFilter(vuFourierFilter& f);
00017         virtual ~vuFourierFilter();
00018 
00019         inline float* getWeights(vuVector& t);
00020         virtual dword getWidth(void) = 0;
00021 
00022         inline vuFourierFilter& operator=(vuFourierFilter& rhs);
00023 
00024 protected:
00025         float* m_Weights;   // A table of weights
00026         dword m_FilterSize;
00027 };
00028 
00029 inline vuFourierFilter::vuFourierFilter() : m_Weights(0)
00030 {
00031 }
00032 
00033 inline vuFourierFilter::vuFourierFilter(const vuString& filterName)
00034   : vuFilter(filterName), m_Weights(0)
00035 {
00036 }
00037 
00038 inline vuFourierFilter::vuFourierFilter(vuFourierFilter& f)
00039 {
00040 }
00041 
00042 inline vuFourierFilter::~vuFourierFilter()
00043 {
00044         if (m_Weights)
00045                 delete [] m_Weights;
00046 }
00047 
00048 inline vuFourierFilter& vuFourierFilter::operator=(vuFourierFilter& rhs)
00049 {
00050         return *this;
00051 }
00052 
00053 inline float* vuFourierFilter::getWeights(vuVector& t)
00054 {
00055         int i = (int)((t[0] * VU_FVR_FILTER_TABLE_MAX) + 0.5);
00056         int j = (int)((t[1] * VU_FVR_FILTER_TABLE_MAX) + 0.5);
00057         int k = (int)((t[2] * VU_FVR_FILTER_TABLE_MAX) + 0.5);
00058         return &m_Weights[((k * VU_FVR_FILTER_TABLE_SIZE + j) * 
00059                            VU_FVR_FILTER_TABLE_SIZE + i) * m_FilterSize];
00060 };
00061 
00062 
00063 #endif

Generated on Wed Dec 15 21:20:34 2004 for vuVolume by  doxygen 1.3.9.1