OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimGdalTiledDataset.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: LGPL
4 //
5 // See LICENSE.txt file in the top level directory for more details.
6 //
7 // Author: Garrett Potts
8 //
9 //*******************************************************************
10 // $Id: ossimGdalTiledDataset.h 14589 2009-05-20 23:51:14Z dburken $
11 #ifndef ossimGdalTiledDataset_HEADER
12 #define ossimGdalTiledDataset_HEADER
13 
14 #include <gdal_priv.h>
15 #include <memdataset.h>
16 #include <ossim/vpfutil/set.h>
17 #include <ossim/base/ossimRefPtr.h>
19 #include <ossim/base/ossimIpt.h>
20 #include <ossim/base/ossimIrect.h>
21 
22 class MEMTiledRasterBand;
24 class ossimImageData;
25 
26 class CPL_DLL MEMTiledDataset : public MEMDataset,
28 {
29 private:
30  friend class MEMTiledRasterBand;
31 
37 
44 
45  void create(ossimImageSourceSequencer* iface);
46 
47 
48 
49 public:
52  ~MEMTiledDataset();
53 
54  static GDALDataset *Create( const char * pszFilename,
55  int nXSize, int nYSize, int nBands,
56  GDALDataType eType, char ** papszParmList );
57 
69  void setNoDataValueFlag(bool flag);
70 };
71 
72 /************************************************************************/
73 /* MEMRasterBand */
74 /************************************************************************/
75 
76 class CPL_DLL MEMTiledRasterBand : public MEMRasterBand
77 {
78 protected:
79 
80  friend class MEMTiledDataset;
83 
84 public:
85 
86  MEMTiledRasterBand( GDALDataset *poDS,
87  int nBand,
88  GByte *pabyData,
89  GDALDataType eType,
90  int nPixelOffset,
91  int nLineOffset,
92  int bAssumeOwnership );
93 
94  virtual ~MEMTiledRasterBand();
95 
96  // should override RasterIO eventually.
97 
98  virtual CPLErr IReadBlock( int, int, void * );
99  virtual CPLErr IWriteBlock( int, int, void * );
100 
101 private:
102 
108  void copyNulls(void* pImage, int count) const;
109 
116  template <class T> void copyNulls(void* pImage,
117  int count,
118  T dummyTemplate) const;
119 
120 };
121 
122 #endif
bool theSetNoDataValueFlag
DRB - 20081020 If true (default) the no data value will be set to null pixel value.
ossimIrect theAreaOfInterest
MEMTiledDataset * theDataset
ossimImageSourceSequencer * theInterface
ossimImageSourceSequencer * theInterface
friend class MEMTiledRasterBand
ossimRefPtr< ossimImageData > theData