1#ifndef ViewportBuffer_h 
    2#define ViewportBuffer_h 
   22template<
class T > 
class QQueue;
 
   71      const std::vector<double> &
getLine(
int line);
 
   74      void pan(
int deltaX, 
int deltaY);
 
  127      void ReadCube(
int cubeId, 
int startSample, 
int startLine,
 
  128                    int endSample, 
int endLine, 
int band, 
void *caller, 
double scale);
 
  134      QRect getXYBoundingRect();
 
  136      void updateBoundingRects();
 
  137      void doQueuedActions();
 
  146      void resizeBuffer(
unsigned int width, 
unsigned int height);
 
  147      void shiftBuffer(
int deltaX, 
int deltaY);
 
  149      bool actionsPreserveData();
 
  150      bool reinitializeActionExists();
 
  160      std::vector< std::vector<double> > p_buffer; 
 
  161      bool p_bufferInitialized; 
 
  167      QRect p_XYBoundingRect;
 
  168      QRect p_oldXYBoundingRect; 
 
  178      int p_viewportHeight; 
 
  179      int p_oldViewportHeight; 
 
  180      int p_vertScrollBarPos; 
 
  181      int p_oldVertScrollBarPos; 
 
  182      bool p_initialStretchDone; 
 
  183      double p_requestedFillArea; 
 
  188      enum sampLineRectPosition {
 
  202      bool p_bricksOrdered;
 
 
Buffer for containing a three dimensional section of an image.
Definition Brick.h:45
 
Encapsulation of Cube I/O with Change Notifications.
Definition CubeDataThread.h:59
 
Widget to display Isis cubes for qt apps.
Definition CubeViewport.h:122
 
Definition ViewportBufferAction.h:18
 
Definition ViewportBufferFill.h:29
 
void addStretchAction()
When all current operations finish the cube viewport will be asked to do a stretch if you call this.
Definition ViewportBuffer.cpp:1224
 
void DoneWithData(int, const Isis::Brick *)
Tell cube data thread we're done with a brick.
 
void ReadCube(int cubeId, int startSample, int startLine, int endSample, int endLine, int band, void *caller, double scale)
Ask the cube data thread for data.
 
const std::vector< double > & getLine(int line)
Retrieves a line from the buffer.
Definition ViewportBuffer.cpp:338
 
void DataReady(void *requester, int cubeId, const Isis::Brick *brick)
This method is called when requested bricks become available.
Definition ViewportBuffer.cpp:205
 
double totalUnfilledArea()
This returns the amount of area in the queue that needs new cube data/will be filled by fill actions.
Definition ViewportBuffer.cpp:646
 
void setBand(int band)
Sets the band to read from, the buffer will be re-read if the band changes.
Definition ViewportBuffer.cpp:1323
 
double currentProgress()
Returns the viewport buffer's loading progress.
Definition ViewportBuffer.cpp:630
 
virtual ~ViewportBuffer()
Updates total buffer size on destruction.
Definition ViewportBuffer.cpp:78
 
ViewportBuffer(CubeViewport *viewport, CubeDataThread *cubeData, int cubeId)
ViewportBuffer constructor.
Definition ViewportBuffer.cpp:42
 
void enable(bool enabled)
This turns on or off reading from the cube.
Definition ViewportBuffer.cpp:1306
 
QRect bufferXYRect()
Returns a rect, in screen pixels, of the area this buffer covers.
Definition ViewportBuffer.cpp:1261
 
void resizedViewport()
Call this when the viewport is resized (not zoomed).
Definition ViewportBuffer.cpp:905
 
bool enabled()
Returns whether the buffer is enabled (reading data) or not.
Definition ViewportBuffer.h:105
 
bool hasEntireCube()
Method to see if the entire cube is in the buffer.
Definition ViewportBuffer.cpp:419
 
void fillBuffer(QRect rect)
This method will convert the rect to sample/line positions and read from the cube into the buffer.
Definition ViewportBuffer.cpp:112
 
void emptyBuffer(bool force=false)
This is meant to clear up ram on non-active viewports.
Definition ViewportBuffer.cpp:1245
 
bool working()
This tests if queued actions exist in the viewport buffer.
Definition ViewportBuffer.cpp:756
 
int getBand()
Return the band associated with this viewport buffer.
Definition ViewportBuffer.h:88
 
void pan(int deltaX, int deltaY)
Call this when the viewport is panned.
Definition ViewportBuffer.cpp:1052
 
void scaleChanged()
Call this when zoomed, re-reads visible area.
Definition ViewportBuffer.cpp:1285
 
Definition ViewportBufferStretch.h:22
 
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
 
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:14
 
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16