![]() |
Isis 3 Developer Reference
|
Reads and stores visible DN values. More...
#include <ViewportBuffer.h>


Public Slots | |
| void | DataReady (void *requester, int cubeId, const Isis::Brick *brick) |
| This method is called when requested bricks become available. More... | |
Signals | |
| void | ReadCube (int cubeId, int startSample, int startLine, int endSample, int endLine, int band, void *caller) |
| Ask the cube data thread for data. More... | |
| void | DoneWithData (int, const Isis::Brick *) |
| Tell cube data thread we're done with a brick. More... | |
Public Member Functions | |
| ViewportBuffer (CubeViewport *viewport, CubeDataThread *cubeData, int cubeId) | |
| ViewportBuffer constructor. More... | |
| virtual | ~ViewportBuffer () |
| Updates total buffer size on destruction. More... | |
| const std::vector< double > & | getLine (int line) |
| Retrieves a line from the buffer. More... | |
| void | resizedViewport () |
| Call this when the viewport is resized (not zoomed). More... | |
| void | pan (int deltaX, int deltaY) |
| Call this when the viewport is panned. More... | |
| void | scaleChanged () |
| Call this when zoomed, re-reads visible area. More... | |
| void | fillBuffer (QRect rect) |
| This method will convert the rect to sample/line positions and read from the cube into the buffer. More... | |
| void | fillBuffer (QRect rect, const Brick *data) |
| This method will convert the rect to sample/line positions and read from the cube into the buffer. More... | |
| void | emptyBuffer (bool force=false) |
| This is meant to clear up ram on non-active viewports. More... | |
| QRect | bufferXYRect () |
| Returns a rect, in screen pixels, of the area this buffer covers. More... | |
| void | setBand (int band) |
| Sets the band to read from, the buffer will be re-read if the band changes. More... | |
| int | getBand () |
| Return the band associated with this viewport buffer. More... | |
| void | enable (bool enabled) |
| This turns on or off reading from the cube. More... | |
| void | addStretchAction () |
| When all current operations finish the cube viewport will be asked to do a stretch if you call this. More... | |
| double | currentProgress () |
| Returns the viewport buffer's loading progress. More... | |
| double | totalUnfilledArea () |
| This returns the amount of area in the queue that needs new cube data/will be filled by fill actions. More... | |
| bool | enabled () |
| Returns whether the buffer is enabled (reading data) or not. More... | |
| bool | working () |
| This tests if queued actions exist in the viewport buffer. More... | |
| bool | hasEntireCube () |
| Method to see if the entire cube is in the buffer. More... | |
Reads and stores visible DN values.
This class manages visible pixels in a CubeViewport. This class is responsible for reading from the Cube only what is necessary and gives fast access to visible DNs.
| Isis::ViewportBuffer::ViewportBuffer | ( | CubeViewport * | viewport, |
| CubeDataThread * | cubeData, | ||
| int | cubeId | ||
| ) |
ViewportBuffer constructor.
Viewport and Cube can not be null. Band is not initialized
| viewport | viewport that will use the buffer |
| cubeData | cube to read from |
| cubeId | The identifier for the cube in the data thread |
|
virtual |
Updates total buffer size on destruction.
| void Isis::ViewportBuffer::addStretchAction | ( | ) |
When all current operations finish the cube viewport will be asked to do a stretch if you call this.
Existing requests will be removed.
Referenced by Isis::IndependentCubeViewport::resetKnownGlobal(), Isis::CubeViewport::showEvent(), Isis::CubeViewport::viewGray(), and Isis::CubeViewport::viewRGB().
| QRect Isis::ViewportBuffer::bufferXYRect | ( | ) |
Returns a rect, in screen pixels, of the area this buffer covers.
Referenced by Isis::StretchTool::histFromBuffer(), Isis::ScatterPlotWindow::paint(), Isis::CubeViewport::scrollContentsBy(), and Isis::StretchTool::statsFromBuffer().
| double Isis::ViewportBuffer::currentProgress | ( | ) |
Returns the viewport buffer's loading progress.
Referenced by Isis::CubeViewport::onProgressTimer().
|
slot |
This method is called when requested bricks become available.
This processes the new cube data and requests more if necessary.
| requester | |
| cubeId | |
| brick |
References _FILEINFO_, Isis::Buffer::at(), Isis::ViewportBufferFill::doneReading(), Isis::ViewportBufferAction::getActionType(), Isis::ViewportBufferFill::getLeftmostPixelPosition(), Isis::ViewportBufferFill::getReadPosition(), Isis::ViewportBufferFill::getRect(), Isis::ViewportBufferFill::getTopmostPixelPosition(), Isis::ViewportBufferFill::incReadPosition(), Isis::Buffer::Line(), Isis::Buffer::Sample(), Isis::ViewportBufferFill::shouldRequestMore(), Isis::Buffer::size(), Isis::ViewportBufferAction::started(), Isis::ViewportBufferFill::viewportToLine(), and Isis::ViewportBufferFill::viewportToSample().
|
signal |
Tell cube data thread we're done with a brick.
| void Isis::ViewportBuffer::emptyBuffer | ( | bool | force = false | ) |
This is meant to clear up ram on non-active viewports.
cubeViewport is supposed to call this method on viewports buffers that are not related to the active viewport.
| force | If true, memory will be freed regardless of current total buffer size (b/w -> rgb for example). |
| void Isis::ViewportBuffer::enable | ( | bool | enabled | ) |
This turns on or off reading from the cube.
If enabled is true the buffer will be re-read.
| enabled |
Referenced by Isis::CubeViewport::setScale(), and Isis::CubeViewport::showEvent().
|
inline |
Returns whether the buffer is enabled (reading data) or not.
Referenced by Isis::CubeViewport::setScale(), and Isis::CubeViewport::showEvent().
| void Isis::ViewportBuffer::fillBuffer | ( | QRect | rect | ) |
This method will convert the rect to sample/line positions and read from the cube into the buffer.
The rect is in viewport pixels.
| rect |
References _FILEINFO_.
Referenced by Isis::CubeViewport::cubeContentsChanged(), and Isis::CubeViewport::cubeDataChanged().
| void Isis::ViewportBuffer::fillBuffer | ( | QRect | rect, |
| const Brick * | data | ||
| ) |
This method will convert the rect to sample/line positions and read from the cube into the buffer.
The rect is in viewport pixels.
| rect | |
| data |
References _FILEINFO_, Isis::Buffer::at(), Isis::ViewportBufferFill::getLeftmostPixelPosition(), Isis::ViewportBufferFill::getRequestPosition(), Isis::ViewportBufferFill::getTopmostPixelPosition(), Isis::ViewportBufferFill::incReadPosition(), Isis::ViewportBufferFill::incRequestPosition(), Isis::Buffer::Index(), Isis::Buffer::Line(), Isis::Buffer::LineDimension(), Isis::Buffer::Sample(), Isis::Buffer::SampleDimension(), Isis::ViewportBufferFill::shouldRequestMore(), Isis::Buffer::size(), Isis::ViewportBufferFill::viewportToLine(), and Isis::ViewportBufferFill::viewportToSample().
|
inline |
Return the band associated with this viewport buffer.
Referenced by Isis::CubeViewport::getAllWhatsThisInfo(), Isis::CubeViewport::viewGray(), and Isis::CubeViewport::viewRGB().
| const vector< double > & Isis::ViewportBuffer::getLine | ( | int | line | ) |
Retrieves a line from the buffer.
Line is relative to the top of the visible area of the cube in the viewport.
| line |
References _FILEINFO_.
Referenced by Isis::StretchTool::histFromBuffer(), Isis::ScatterPlotWindow::paint(), and Isis::StretchTool::statsFromBuffer().
| bool Isis::ViewportBuffer::hasEntireCube | ( | ) |
Method to see if the entire cube is in the buffer.
Referenced by Isis::StretchTool::stretchRequested().
| void Isis::ViewportBuffer::pan | ( | int | deltaX, |
| int | deltaY | ||
| ) |
Call this when the viewport is panned.
DeltaX and deltaY are relative to the direction the buffer needs to shift.
| deltaX | |
| deltaY |
References Isis::ViewportBufferTransform::resizeFirst(), round, Isis::ViewportBufferTransform::setResize(), and Isis::ViewportBufferTransform::setTranslation().
Referenced by Isis::CubeViewport::center(), and Isis::CubeViewport::scrollContentsBy().
|
signal |
Ask the cube data thread for data.
| cubeId | |
| startSample | |
| startLine | |
| endSample | |
| endLine | |
| band | |
| caller |
| void Isis::ViewportBuffer::resizedViewport | ( | ) |
Call this when the viewport is resized (not zoomed).
References Isis::ViewportBufferTransform::resizeFirst(), round, Isis::ViewportBufferTransform::setResize(), and Isis::ViewportBufferTransform::setTranslation().
Referenced by Isis::CubeViewport::resizeEvent().
| void Isis::ViewportBuffer::scaleChanged | ( | ) |
Call this when zoomed, re-reads visible area.
| iException | - "Unable to change scale" |
References _FILEINFO_.
Referenced by Isis::CubeViewport::setScale().
| void Isis::ViewportBuffer::setBand | ( | int | band | ) |
Sets the band to read from, the buffer will be re-read if the band changes.
| band |
Referenced by Isis::CubeViewport::viewGray(), and Isis::CubeViewport::viewRGB().
| double Isis::ViewportBuffer::totalUnfilledArea | ( | ) |
This returns the amount of area in the queue that needs new cube data/will be filled by fill actions.
References Isis::ViewportBufferAction::getActionType(), Isis::ViewportBufferFill::getReadPosition(), and Isis::ViewportBufferFill::getRect().
| bool Isis::ViewportBuffer::working | ( | ) |
This tests if queued actions exist in the viewport buffer.
Referenced by Isis::CubeViewport::bufferUpdated(), Isis::CubeViewport::onProgressTimer(), Isis::ScatterPlotWindow::paint(), Isis::CubeViewport::scrollContentsBy(), Isis::StretchTool::setCubeViewport(), Isis::StretchTool::statsFromBuffer(), Isis::StretchTool::updateAdvStretchDialogforAll(), and Isis::StretchTool::updateHistograms().