USGS

Isis 3.0 Object Programmers' Reference

Home

RawCubeChunk.h
Go to the documentation of this file.
1 
21 #ifndef RawCubeChunk_h
22 #define RawCubeChunk_h
23 
24 class QByteArray;
25 
26 namespace Isis {
27  class Area3D;
28 
42  class RawCubeChunk {
43  public:
44  RawCubeChunk(const Area3D &placement, int numBytes);
45  RawCubeChunk(int startSample, int startLine, int startBand,
46  int endSample, int endLine, int endBand, int numBytes);
47  virtual ~RawCubeChunk();
48  bool isDirty() const;
49 
53  QByteArray &getRawData() const {
54  return *m_rawBuffer;
55  }
56 
57  void setRawData(QByteArray rawData);
58 
59  unsigned char getChar(int offset) const;
60  short getShort(int offset) const;
61  float getFloat(int offset) const;
62 
63  // The following methods are inlined for proven performance gain.
64 
68  int getStartSample() const {
69  return m_startSample;
70  }
71 
75  int getStartLine() const {
76  return m_startLine;
77  }
78 
82  int getStartBand() const {
83  return m_startBand;
84  }
85 
89  int sampleCount() const {
90  return m_sampleCount;
91  }
92 
96  int lineCount() const {
97  return m_lineCount;
98  }
99 
103  int bandCount() const {
104  return m_bandCount;
105  }
106 
107  int getByteCount() const;
108 
109  void setData(unsigned char value, int offset);
110  void setData(short value, int offset);
111  void setData(const float &value, const int &offset);
112  void setDirty(bool dirty);
113 
114  private:
120  RawCubeChunk(const RawCubeChunk &other);
121 
128  RawCubeChunk& operator=(const RawCubeChunk &other);
129 
130  private:
132  bool m_dirty;
133 
135  QByteArray *m_rawBuffer;
138 
145 
152  };
153 }
154 
155 #endif
156