00001 00031 #ifndef INC_SPATMOD_IMAGETARGETPNG_H 00032 #define INC_SPATMOD_IMAGETARGETPNG_H 00033 00034 #ifndef INC_SPATMOD_IMAGETARGETFILE_H 00035 #include <spatmod/imagetargetfile.h> 00036 #endif 00037 00038 namespace SPATMOD { 00039 namespace IMAGE { 00040 00041 //===================================================================================================================== 00042 00047 class TARGET_PNG : public TARGET_FILE { 00048 public: 00049 00051 class FACTORY : public FACTORY_TARGET_FILE { 00052 public: 00053 00055 FACTORY (); 00056 00058 FACTORY (const FACTORY& rhs); 00059 00061 virtual ~FACTORY (); 00062 00063 private: 00064 #ifndef GENERATING_DOXYGEN_OUTPUT 00065 00066 // FACTORY_TARGET_FILE overrides. 00067 virtual FACTORY_TARGET_FILE * v_Clone () const; 00068 virtual TARGET_FILE * v_ConstructTarget (STAGE *pInputStage, const FILEPATH& filepath, GEOFORMATS GeoFormats) const; 00069 00070 // Unimplemented. 00071 FACTORY& operator= (const FACTORY& rhs); 00072 #endif 00073 }; 00074 00076 TARGET_PNG ( 00077 STAGE *pInputStage, 00078 const FILEPATH& filepath, 00079 GEOFORMATS GeoFormats = GEOFORMAT_None 00080 ); 00081 00083 virtual ~TARGET_PNG (); 00084 00085 private: 00086 #ifndef GENERATING_DOXYGEN_OUTPUT 00087 class FILE_PNG; 00088 FILE_PNG *m_pFile; 00089 SIMPLE_ARRAY<UINT8> m_RowBuf; 00090 00091 ERRVALUE MakeFile(const FILEPATH&, const LRECT2D& extents); 00092 // TARGET overrides. 00093 virtual ERRVALUE v_FillTileRows ( INT32 NumColumns, INT32 NumRows); 00094 virtual ERRVALUE v_Initialize (); 00095 virtual ERRVALUE v_PushBegin (const SECTION_ITERATOR& iterator); 00096 virtual ERRVALUE v_PushEnd (); 00097 virtual ERRVALUE v_TileBegin (const FILEPATH& filepath,const LRECT2D& extents); 00098 virtual ERRVALUE v_TileEnd (); 00099 virtual ERRVALUE v_WriteSubSection (const SECTION& SubSection, const BUFFER& buffer); 00100 00101 // Unimplemented 00102 TARGET_PNG (const TARGET_PNG&); 00103 TARGET_PNG& operator= (const TARGET_PNG&); 00104 #endif // GENERATING_DOXYGEN_OUTPUT 00105 00106 }; 00107 00108 //===================================================================================================================== 00109 00110 } // End namespace IMAGE 00111 } // End namespace SPATMOD 00112 00113 #endif // INC_SPATMOD_IMAGETARGETPNG_H 00114
1.6.1