00001
00053 #ifndef INC_MIE_RASTER_H
00054 #define INC_MIE_RASTER_H
00055
00056 #ifndef INC_MIE_IMAGE_H
00057 #include <mie/image.h>
00058 #endif
00059
00060 #ifndef INC_RVC_RASTER_H
00061 #include <rvc/raster.h>
00062 #endif
00063
00064 #ifndef INC_RVC_NULLMASK_H
00065 #include <rvc/nullmask.h>
00066 #endif
00067
00068 #ifndef INC_RVC_CONTRAST_H
00069 #include <rvc/contrast.h>
00070 #endif
00071
00072
00073 namespace MIE {
00074
00075
00076
00077
00078 class JOB_RASTER : public JOB_IMAGE {
00079 public:
00080 JOB_RASTER (
00081 const FORMAT& format,
00082 const SETTINGS& settings
00083 );
00084
00085 virtual ~JOB_RASTER ();
00086
00087
00088 RVC::RASTER& GetRastObj (
00089 ) { return m_RastObj; }
00090
00093 void GetMakeParms (
00094 RVC::RASTER::MAKEPARMS& makeparms
00095 ) const;
00096
00097 int GetTileLines () const;
00098 int GetTileColumns () const;
00099
00104 ERRVALUE MakeRaster (
00105 RVC::RASTER::MAKEPARMS& makeparms
00106 );
00107
00112 ERRVALUE MakeRaster (
00113 );
00114
00117 ERRVALUE WriteRaster (
00118 INT32 Line,
00119 INT32 StartColumn,
00120 void* data,
00121 INT32 Length=1,
00122 RVC::IMAGE::CONVMODE Convert=RVC::IMAGE::CONVMODE_None,
00123 RVC::RASTER::COMPONENT Component=RVC::RASTER::COMPONENT_Default
00124 );
00125
00127 INT64 ImportGenericComputeBandSize (
00128 ) const;
00129
00130 protected:
00131
00132
00138 virtual ERRVALUE v_ImportBegin (
00139 const RVC::OBJITEM& DestObj
00140 );
00141
00153 virtual ERRVALUE v_ImportEnd (
00154 RVC::OBJITEM& DestObj
00155 );
00156
00172 virtual ERRVALUE v_ImportGeneric (
00173 const FILEPATH& filepath
00174 );
00175
00176 virtual bool v_ImportNeedTempFile (
00177 ) const;
00178
00179 private:
00180 RVC::RASTER m_RastObj;
00181 };
00182
00183 class JOB_EXPORT_RASTER : public JOB_EXPORT {
00184 public:
00185 JOB_EXPORT_RASTER (
00186 const FORMAT& format,
00187 const SETTINGS& settings
00188 );
00189
00190 virtual ~JOB_EXPORT_RASTER ();
00191
00192 const RVC::IMAGE::NULLVALUE& GetNullValue (
00193 ) { return m_NullValue; }
00194
00196 RVC::RASTER& GetRaster (
00197 ) { return m_RastObj; }
00198
00201 bool IsContrastUsed () const;
00202
00204 ERRVALUE OpenRaster (
00205 );
00206
00208 ERRVALUE ReadRaster (
00209 INT32 Line,
00210 INT32 StartColumn,
00211 void* Data,
00212 INT32 Length,
00213 RVC::IMAGE::CONVMODE Mode = RVC::IMAGE::CONVMODE_None,
00214 RVC::RASTER::COMPONENT Component = RVC::RASTER::COMPONENT_Default
00215 );
00216
00218 ERRVALUE ReadRasterBand (
00219 INT32 Band,
00220 INT32 Line,
00221 INT32 StartColumn,
00222 void* data,
00223 INT32 Length = 1,
00224 RVC::IMAGE::CONVMODE = RVC::IMAGE::CONVMODE_None
00225 );
00226
00229 void SetNeedExternalGeoref (
00230 bool Value
00231 ) { m_bNeedExtGeoref = Value; }
00232
00234 static ERRVALUE ExportGeoref (
00235 const SETTINGS& settings,
00236 const RVC::RASTER& rast,
00237 const MISTRING& Dest
00238 );
00239
00242 static ERRVALUE ExportGeorefArcWorld (
00243 const SETTINGS& settings,
00244 const RVC::RASTER& rast,
00245 const MISTRING& Dest
00246 );
00247
00250 static ERRVALUE ExportGeorefKML (
00251 const SETTINGS& settings,
00252 const RVC::RASTER& rast,
00253 const MISTRING& Dest,
00254 bool doCompress = false
00255 );
00256
00259 static ERRVALUE CompressKML (
00260 const FILEPATH& kmlpath,
00261 const FILEPATH& rasterpath
00262 );
00263
00266 static ERRVALUE ExportGeorefMapInfoTAB (
00267 const SETTINGS& settings,
00268 const RVC::RASTER& rast,
00269 const MISTRING& Dest
00270 );
00271
00273 static ERRVALUE ExportGeorefDescText (
00274 const SETTINGS& settings,
00275 const RVC::RASTER& rast,
00276 const MISTRING& Dest
00277 );
00278
00279 protected:
00280
00281 virtual ERRVALUE v_ExportEndObject (
00282 const MISTRING& Dest
00283 );
00284
00285 private:
00286 #ifndef GENERATING_DOXYGEN_OUTPUT
00287 RVC::RASTER m_RastObj;
00288 CONTRASTPARM m_Contrast;
00289 RVC::NULLMASK m_NullMask;
00290 RVC::IMAGE::NULLVALUE m_NullValue;
00291 SIMPLE_ARRAY<UINT8> m_NullBuff;
00292 bool m_bNeedExtGeoref;
00293 #endif //< GENERATING_DOXYGEN_OUTPUT
00294 };
00295 }
00296
00297 #endif
00298