00001 00018 #ifndef INC_SPATMOD_IMAGEFILTERCACHEIMAGE_H 00019 #define INC_SPATMOD_IMAGEFILTERCACHEIMAGE_H 00020 00021 #ifndef INC_SPATMOD_IMAGEFILTER_H 00022 #include <spatmod/imagefilter.h> 00023 #endif 00024 00025 namespace SPATMOD { 00026 namespace IMAGE { 00027 00028 //===================================================================================================================== 00029 00033 class FILTER_CACHEIMAGE : public FILTER { 00034 public: 00035 00038 FILTER_CACHEIMAGE ( 00039 STAGE *pPreviousStage, 00040 bool TakeOwnership, 00041 double MemoryMaxUsage = 4.0, 00042 UINT32 TileRows = 0, 00043 UINT32 TileColumns = 0 00044 ); 00045 00046 // Destructor. 00047 virtual ~FILTER_CACHEIMAGE (); 00048 00054 void SetKeepAfterPullEnd ( 00055 bool KeepAfterPullEnd 00056 ) { m_KeepAfterPullEnd = KeepAfterPullEnd; } 00057 00058 private: 00059 #ifndef GENERATING_DOXYGEN_OUTPUT 00060 00061 IMAGE::STAGE *m_pCache; 00062 double m_MemoryMaxUsage; 00063 bool m_UseMemory; 00064 bool m_KeepAfterPullEnd; 00065 00066 ERRVALUE LoadToMemory (); 00067 ERRVALUE LoadToTempFile (); 00068 00069 // BASE/STAGE/FILTER overrides. 00070 virtual ERRVALUE v_Initialize (); 00071 virtual ERRVALUE v_PullBegin (const SECTION_ITERATOR& iterator); 00072 virtual ERRVALUE v_PullEnd (); 00073 virtual ERRVALUE v_PullSubSection (const SECTION& SubSection, BUFFER& buffer); 00074 virtual float v_QueryIterator (const SECTION_ITERATOR& iterator) const; 00075 00076 // Unimplemented 00077 FILTER_CACHEIMAGE (const FILTER_CACHEIMAGE&); 00078 FILTER_CACHEIMAGE& operator= (const FILTER_CACHEIMAGE&); 00079 #endif // GENERATING_DOXYGEN_OUTPUT 00080 00081 }; 00082 00083 //===================================================================================================================== 00084 00085 } // End namespace IMAGE 00086 } // End namespace SPATMOD 00087 00088 #endif // INC_SPATMOD_IMAGEFILTERCACHEIMAGE_H 00089
1.6.1