Isis 3.0
Back | 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;
137  char *m_rawBufferInternalPtr;
138 
140  int m_sampleCount;
142  int m_lineCount;
144  int m_bandCount;
145 
147  int m_startSample;
149  int m_startLine;
151  int m_startBand;
152  };
153 }
154 
155 #endif
156 
void setRawData(QByteArray rawData)
Sets the chunk's raw data.
Definition: RawCubeChunk.cpp:95
int getStartLine() const
Definition: RawCubeChunk.h:75
Represents a 3D area (a 3D "cube")
Definition: Area3D.h:41
bool isDirty() const
Definition: RawCubeChunk.cpp:84
RawCubeChunk(const Area3D &placement, int numBytes)
This constructor creates a new cube chunk based on the provided placement and data size...
Definition: RawCubeChunk.cpp:23
int getByteCount() const
Definition: RawCubeChunk.cpp:148
void setDirty(bool dirty)
Sets the chunk's dirty flag, indicating whether or not the chunk's data matches the data that is on d...
Definition: RawCubeChunk.cpp:207
int lineCount() const
Definition: RawCubeChunk.h:96
void setData(unsigned char value, int offset)
Sets the char at the given offset in the raw data buffer of this chunk.
Definition: RawCubeChunk.cpp:163
virtual ~RawCubeChunk()
The destructor.
Definition: RawCubeChunk.cpp:72
QByteArray & getRawData() const
Definition: RawCubeChunk.h:53
short getShort(int offset) const
Definition: RawCubeChunk.cpp:127
int sampleCount() const
Definition: RawCubeChunk.h:89
A section of raw data on the disk.
Definition: RawCubeChunk.h:42
int getStartBand() const
Definition: RawCubeChunk.h:82
int getStartSample() const
Definition: RawCubeChunk.h:68
int bandCount() const
Definition: RawCubeChunk.h:103
float getFloat(int offset) const
Definition: RawCubeChunk.cpp:139
unsigned char getChar(int offset) const
This method is currently not in use due to a faster way of getting data from the buffer (through the ...
Definition: RawCubeChunk.cpp:115

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:27:48