|
Wavelet and Image class library
1.3.2
|
00001 /* 00002 * class VideoArray 00003 * 00004 * $Date$ 00005 * $Revision$ 00006 * 00007 */ 00008 00009 #ifndef VIDEO_ARRAY_HH__ 00010 #define VIDEO_ARRAY_HH__ 00011 00012 #include "WImage/ImageArray.hh" 00013 00023 template<class T> class 00024 VideoArray : public ImageArray <T> 00025 { 00026 public: 00035 VideoArray (int rows, int cols, int frames); 00036 VideoArray (int rows, int cols, int frames, const VideoArray<T>*v); 00038 virtual ~VideoArray (void); 00039 00045 void current (int frame); 00046 00049 inline int current (void) { return m_current; } 00050 00054 inline int frames (void) const { return m_frames; } 00055 00063 inline T at (int y, int x) const { return this->m_ar[abs (y, x)]; } 00069 virtual T at (int abs) const { 00070 return this->m_ar[m_offset + abs]; 00071 } 00079 inline void to (int y, int x, T val) { this->m_ar[abs (y, x)] = val; } 00085 virtual void to (int abs, T val) { this->m_ar[m_offset + abs] = val; } 00093 virtual int abs (int y, int x) const { 00094 return m_offset + this->m_rows[y] + x; 00095 } 00096 00109 bool epsilonsFrames (int f1, int f2, T epsilon) const; 00110 00119 bool equalsFrames (int f1, int f2) const; 00120 00131 virtual bool epsilons (ImageArray<T> &ia, T epsilon) const; 00132 00142 virtual void resize (int rows, int cols); 00151 virtual void reframe (int frames, bool keephead = true); 00162 virtual void import (int rows, int cols, int frames, T *array); 00163 00172 virtual void import (int rows, int cols, T *array); 00177 virtual VideoArray<T> *cloneVideo (void) const; 00182 virtual ImageArray<T> *clone (void) const; 00188 virtual void copy (ImageArray<T> &ia); 00189 00190 protected: 00192 int m_frames; 00194 int m_xyzsize; 00196 int m_current; 00198 int m_offset; 00208 bool epsilonsVideo (VideoArray<T> &va, T epsilon) const; 00209 }; /* class VideoArray */ 00210 00211 #include "../VideoArray.cc" 00212 00215 #endif /* VIDEO_ARRAY_HH__ */ 00216
1.7.6.1