// Wavelet Analysis Tool //$Id: WaveDWT.hh,v 0.2 2001/08/06 19:37:00 klimenko Exp $ #ifndef WAVEDWT_HH #define WAVEDWT_HH #include #include "Wavelet.hh" namespace datacondAPIwat { template class WaveDWT : public Wavelet { public: //: constructor WaveDWT(int mH=1, int mL=1, int tree=0, enum BORDER border=B_CYCLE); //: construct from the base class WaveDWT(const Wavelet &); //: copy constructor WaveDWT(const WaveDWT &); //: Destructor virtual ~WaveDWT(); //: Duplicate on heap virtual WaveDWT* Clone() const; //: get maximum possible level of wavelet decompostion virtual int getMaxLevel(); //: make slice for layer with specified index virtual slice getSlice(const int); //: make slice for (level,layer) virtual slice getSlice(const int, const int); //: Allocate data (set pWWS) bool allocate(unsigned int, DataType_t *); //: return allocate status (true if allocated) bool allocate(); //: Release data void release(); //: forward wavelet transform virtual void t2w(int=1); //: inverse wavelet transform virtual void w2t(int=1); protected: //: makes one decomposition step virtual void decompose(int,int); //: makes one reconstruction step virtual void reconstruct(int,int); DataType_t *pWWS; // pointer to wavelet work space unsigned int nWWS; // size of the wavelet work space }; // class WaveDWT }; // namespace datacondAPIwat #endif // WAVEDWT_HH