00001 00043 #ifndef INC_SPATMOD_IMAGETARGET_H 00044 #define INC_SPATMOD_IMAGETARGET_H 00045 00046 #ifndef INC_SPATMOD_IMAGEBASE_H 00047 #include <spatmod/imagebase.h> 00048 #endif 00049 00050 #ifndef INC_MI32_DELEGATE_H 00051 #include <mi32/delegate.h> 00052 #endif 00053 00054 namespace SPATMOD { 00055 namespace IMAGE { 00056 00057 class STAGE; 00058 class SECTION; 00059 class SECTION_ITERATOR; 00060 class BUFFER; 00061 00062 //===================================================================================================================== 00063 00065 class TARGET : public BASE { 00066 public: 00067 00070 TARGET ( 00071 STAGE *pInputStage 00072 ); 00073 00075 virtual ~TARGET (); 00076 00079 ERRVALUE Initialize ( 00080 ); 00081 00083 ERRVALUE Process ( 00084 bool ShowMsg = true 00085 ); 00086 00088 ERRVALUE Process ( 00089 const SECTION& section, 00090 bool ShowMsg = true 00091 ); 00092 00095 ERRVALUE Process ( 00096 const SECTION_ITERATOR& iterator, 00097 bool ShowMsg = true 00098 ); 00099 00102 ERRVALUE PushBegin ( 00103 const SECTION_ITERATOR& iterator 00104 ) { return (v_PushBegin(iterator)); } 00105 00108 ERRVALUE PushEnd ( 00109 ) { return (v_PushEnd()); } 00110 00113 ERRVALUE PushSubSection ( 00114 const SECTION& SubSection, 00115 const BUFFER& buffer 00116 ) { return (v_PushSubSection(SubSection,buffer)); } 00117 00119 ERRVALUE SetupIterator ( 00120 SECTION_ITERATOR& iterator 00121 ) const; 00122 00125 ERRVALUE SetupIterator ( 00126 const SECTION& section, 00127 SECTION_ITERATOR& iterator 00128 ) const; 00129 00132 void SetZeroInvalidSamples ( 00133 bool ZeroInvalidSamples 00134 ) { m_ZeroInvalidSamples = ZeroInvalidSamples; } 00135 00136 protected: 00137 00139 IMAGE::STAGE* GetInputStage ( 00140 ) const { return (m_pInputStage); } 00141 00144 void SetStripSizeY ( 00145 double StripSizeY 00146 ); 00147 00150 virtual const PIXELTABLE* v_GetPixelLookupTable ( 00151 ) const; 00152 00155 virtual bool v_QueryCapability ( 00156 CAPABILITY capability 00157 ) const; 00158 00159 private: 00160 #ifndef GENERATING_DOXYGEN_OUTPUT 00161 00162 IMAGE::STAGE *m_pInputStage; 00163 double m_StripSizeY; 00164 bool m_ZeroInvalidSamples; 00165 00166 ERRVALUE ProcessLow ( 00167 SECTION_ITERATOR& iterator, 00168 bool ShowMsg 00169 ); 00170 00171 ERRVALUE SetTotalSection ( 00172 const SECTION& TotalSection 00173 ); 00174 00175 // BASE overrides. 00176 virtual const char* v_GetTypeName () const; 00177 virtual ERRVALUE v_LogCreate (const char *label, bool OnlyEnds, MILOG::MODE mode); 00178 00179 // Unimplemented 00180 TARGET (const TARGET&); 00181 TARGET& operator= (const TARGET&); 00182 #endif // GENERATING_DOXYGEN_OUTPUT 00183 00184 // TARGET overridables 00185 00190 virtual ERRVALUE v_Initialize ( 00191 ) = 0; 00192 00195 virtual ERRVALUE v_PushBegin ( 00196 const SECTION_ITERATOR& iterator 00197 ) = 0; 00198 00202 virtual ERRVALUE v_PushEnd ( 00203 ) = 0; 00204 00206 virtual ERRVALUE v_PushSubSection ( 00207 const SECTION& SubSection, 00208 const BUFFER& buffer 00209 ) = 0; 00210 00213 virtual ERRVALUE v_SetTotalSection ( 00214 const SECTION& TotalSection 00215 ); 00216 00217 }; 00218 00219 //===================================================================================================================== 00220 00221 } // End namespace IMAGE 00222 } // End namespace SPATMOD 00223 00224 #endif // INC_SPATMOD_IMAGETARGET_H 00225
1.6.1