USGS

Isis 3.0 Developer's Reference (API)

Home

Brick.h

Go to the documentation of this file.
00001 #ifndef Brick_h
00002 #define Brick_h
00003 
00026 #include "PixelType.h"
00027 #include "BufferManager.h"
00028 #include "Cube.h"
00029 
00030 namespace Isis {
00060   class Brick : public Isis::BufferManager {
00061     public:
00070       Brick(const int nsamps, const int nlines, const int nbands,
00071             const Isis::PixelType type, bool reverse=false) :
00072         Isis::BufferManager(nsamps, nlines, nbands,
00073                             nsamps, nlines, nbands, type, reverse) {
00074       };
00075 
00076       Brick(const Isis::Cube &cube, const int &bufNumSamples,
00077             const int &bufNumLines, const int &bufNumBands,
00078             bool reverse=false) :
00079         Isis::BufferManager(cube.sampleCount(), cube.lineCount(),
00080                             cube.bandCount(), bufNumSamples, bufNumLines,
00081                             bufNumBands, cube.pixelType(), reverse) {
00082       };
00083 
00096       Brick(int maxSamples, int maxLines, int maxBands, int bufNumSamples,
00097             int bufNumLines, int bufNumBands, Isis::PixelType type,
00098             bool reverse=false) :
00099         Isis::BufferManager(maxSamples, maxLines, maxBands, bufNumSamples,
00100                             bufNumLines, bufNumBands, type, reverse) {
00101       };
00102 
00103     public:
00112       void SetBasePosition(const int start_sample, const int start_line,
00113                            const int start_band) {
00114         this->Isis::Buffer::SetBasePosition(start_sample, start_line, start_band);
00115       };
00116 
00122       inline void SetBaseSample(const int start_samp) {
00123         this->Isis::Buffer::SetBaseSample(start_samp);
00124       };
00125 
00131       inline void SetBaseLine(const int start_line) {
00132         this->Isis::Buffer::SetBaseLine(start_line);
00133       };
00134 
00140       inline void SetBaseBand(const int start_band) {
00141         this->Isis::Buffer::SetBaseBand(start_band);
00142       };
00143 
00144       void Resize(const int nsamps, const int nlines, const int nbands);
00145 
00153       bool SetBrick(const int brick);
00154 
00160       inline int Bricks() {
00161         return MaxMaps();
00162       };
00163   };
00164 };
00165 
00166 #endif