00001 00039 #ifndef INC_SPATMOD_IMAGESOURCEMRSID_H 00040 #define INC_SPATMOD_IMAGESOURCEMRSID_H 00041 00042 #ifndef INC_MI32_PLATFORMSUPPORT_H 00043 #include <mi32/platformsupport.h> 00044 #endif 00045 00046 #if defined(PLATFORM_SUPPORTS_MRSID) || defined(GENERATING_DOXYGEN_OUTPUT) 00047 00048 #ifndef INC_SPATMOD_IMAGESOURCE_H 00049 #include <spatmod/imagesource.h> 00050 #endif 00051 00052 #ifndef INC_MI32_FILEPATH_H 00053 #include <mi32/filepath.h> 00054 #endif 00055 00056 #ifndef GENERATING_DOXYGEN_OUTPUT 00057 class MRSID_READER; 00058 #endif 00059 00060 namespace SPATMOD { 00061 namespace IMAGE { 00062 00063 //===================================================================================================================== 00064 00066 class SOURCE_MRSID : public SOURCE { 00067 public: 00068 00069 // Default constructor. 00070 explicit SOURCE_MRSID ( 00071 const FILEPATH& FilePath 00072 ); 00073 00074 // Destructor. 00075 virtual ~SOURCE_MRSID (); 00076 00079 void SetKeepOpen (bool KeepOpen) 00080 { m_KeepOpen = KeepOpen; } 00081 00082 private: 00083 #ifndef GENERATING_DOXYGEN_OUTPUT 00084 FILEPATH m_FilePath; 00085 bool m_KeepOpen; 00086 bool m_DoingPull; 00087 bool m_ReadByStrip; 00088 int m_NumLevels; 00089 mutable MRSID_READER *m_pReader; 00090 00091 ERRVALUE OpenReader () const; 00092 void CloseReader () const; 00093 00094 // BASE overrides. 00095 virtual ERRVALUE v_GetDimensions (DIMENSIONS& dimensions, double zoom) const; 00096 virtual float v_QueryIterator (const SECTION_ITERATOR& iterator) const; 00097 virtual ZOOMABILITY v_GetZoomAbility (SIMPLE_ARRAY<double>& ZoomsAllowed) const; 00098 00099 // STAGE overrides. 00100 virtual ERRVALUE v_Initialize (); 00101 virtual ERRVALUE v_PullBegin (const SECTION_ITERATOR& iterator); 00102 virtual ERRVALUE v_PullEnd (); 00103 virtual ERRVALUE v_PullSubSection (const SECTION& SubSection, BUFFER& buffer); 00104 00105 // Unimplemented 00106 SOURCE_MRSID (const SOURCE_MRSID&); 00107 SOURCE_MRSID& operator= (const SOURCE_MRSID&); 00108 #endif // GENERATING_DOXYGEN_OUTPUT 00109 00110 }; 00111 00112 //===================================================================================================================== 00113 00114 } // End namespace IMAGE 00115 } // End namespace SPATMOD 00116 00117 #endif // PLATFORM_SUPPORTS_MRSID 00118 #endif // INC_SPATMOD_IMAGESOURCEMRSID_H 00119
1.6.1