Isis Developer Reference
Isis::CubeViewport Class Referenceabstract

Widget to display Isis cubes for qt apps. More...

#include <CubeViewport.h>

Inheritance diagram for Isis::CubeViewport:
Inheritance graph
Collaboration diagram for Isis::CubeViewport:
Collaboration graph

Classes

class  BandInfo
 

Public Slots

QSize sizeHint () const
 Make viewports show up as 512 by 512.
 
void setScale (double scale)
 Change the scale of the cube to the given parameter value.
 
void setScale (double scale, double sample, double line)
 Change the scale of the cube after moving samp/line to the center.
 
void setScale (double scale, int x, int y)
 Change the scale of the cube after moving x,y to the center.
 
void center (int x, int y)
 Bring the cube pixel under viewport x/y to the center.
 
void center (double sample, double line)
 Bring the cube sample/line the center.
 
virtual void viewRGB (int redBand, int greenBand, int blueBand)
 View cube as color.
 
virtual void viewGray (int band)
 View cube as gray.
 
void stretchGray (const QString &string)
 Apply stretch pairs to gray band.
 
void stretchRed (const QString &string)
 Apply stretch pairs to red bands.
 
void stretchGreen (const QString &string)
 Apply stretch pairs to green bands.
 
void stretchBlue (const QString &string)
 Apply stretch pairs to blue bands.
 
void stretchGray (const Stretch &stretch)
 Sets the stretch for gray mode.
 
void stretchRed (const Stretch &stretch)
 Sets the stretch for red in rgb mode.
 
void stretchGreen (const Stretch &stretch)
 Sets the stretch for green in rgb mode.
 
void stretchBlue (const Stretch &stretch)
 Sets the stretch for blue in rgb mode.
 
void stretchKnownGlobal ()
 List<Tool *> p This stretches to the global stretch.
 
void cubeChanged (bool changed)
 This method is called when the cube has changed or changes have been finalized.
 
void showEvent (QShowEvent *)
 This method is called to initially show the viewport.
 
void scrollBy (int dx, int dy)
 Move the scrollbars by dx/dy screen pixels.
 
void changeCursor (QCursor cursor)
 Allows users to change the cursor type on the viewport.
 
void onProgressTimer ()
 This updates the progress bar visually.
 
void enableProgress ()
 This restarts the progress bar.
 

Signals

void viewportUpdated ()
 Emitted when viewport updated.
 
void viewportClosed (CubeViewport *)
 Emitted when viewport is closed.
 
void mouseEnter ()
 Emitted when the mouse enters the viewport.
 
void mouseMove (QPoint)
 Emitted when the mouse moves.
 
void mouseMove (QPoint, Qt::MouseButton)
 Emitted when the mouse moves.
 
void mouseLeave ()
 Emitted when the mouse leaves the viewport.
 
void mouseButtonPress (QPoint, Qt::MouseButton)
 Emitted when mouse button pressed.
 
void mouseButtonRelease (QPoint, Qt::MouseButton)
 Emitted when mouse button released.
 
void mouseDoubleClick (QPoint)
 Emitted when double click happens.
 
void windowTitleChanged ()
 Emitted when window title changes.
 
void scaleChanged ()
 Emitted when zoom factor changed just before the repaint event.
 
void saveChanges (CubeViewport *)
 Emitted when changes should be saved.
 
void discardChanges (CubeViewport *)
 Emitted when changes should be discarded.
 
void screenPixelsChanged ()
 Emitted when cube pixels that should be on the screen change.
 
void progressChanged (int)
 Emitted with current progress (0 to 100) when working.
 
void progressComplete ()
 Emitted when the current progress is complete (100)
 
void doneWithData (int, const Isis::Brick *)
 Emitted when a brick is no longer needed, should only be sent to cube data thread.
 

Public Member Functions

 CubeViewport (Cube *cube, CubeDataThread *cdt=0, QWidget *parent=0)
 Constructor for the CubeViewport.
 
virtual ~CubeViewport ()
 Deconstructor for the Cubeviewport.
 
void setCube (Cube *cube)
 This method sets the viewports cube.
 
int cubeSamples () const
 Return the number of samples in the cube.
 
int cubeLines () const
 Return the number of lines in the cube.
 
int cubeBands () const
 Return the number of bands in the cube.
 
bool isColor () const
 
bool isGray () const
 
int grayBand () const
 
int redBand () const
 
int greenBand () const
 
int blueBand () const
 
double scale () const
 
bool cubeShown () const
 
int comboCount () const
 
int comboIndex () const
 
void cubeContentsChanged (QRect rect)
 Calle dhwen the contents of the cube changes.
 
double fitScale () const
 Determine the scale that causes the full cube to fit in the viewport.
 
double fitScaleWidth () const
 Determine the scale of cube in the width to fit in the viewport.
 
double fitScaleHeight () const
 Determine the scale of cube in heighth to fit in the viewport.
 
void viewportToCube (int x, int y, double &sample, double &line) const
 Turns a viewport into a cube.
 
void cubeToViewport (double sample, double line, int &x, int &y) const
 Turns a cube into a viewport.
 
void contentsToCube (int x, int y, double &sample, double &line) const
 Turns contents to a cube.
 
void cubeToContents (double sample, double line, int &x, int &y) const
 Turns a cube into contents.
 
double redPixel (int sample, int line)
 Gets the red pixel.
 
double greenPixel (int sample, int line)
 Gets the green pixel.
 
double bluePixel (int sample, int line)
 Gets the blue pixel.
 
double grayPixel (int sample, int line)
 Gets the gray pixel.
 
CubeStretch grayStretch () const
 Return the gray band stretch.
 
CubeStretch redStretch () const
 Return the red band stretch.
 
CubeStretch greenStretch () const
 Return the green band stretch.
 
CubeStretch blueStretch () const
 Return the blue band stretch.
 
Cubecube () const
 
Projectionprojection () const
 
Cameracamera () const
 
UniversalGroundMapuniversalGroundMap () const
 
CubetrackingCube () const
 
void moveCursor (int x, int y)
 Move the cursor by x,y if possible.
 
bool cursorInside () const
 Is cursor inside viewport.
 
QPoint cursorPosition () const
 Return the cursor position in the viewport.
 
void setCursorPosition (int x, int y)
 Set the cursor position to x/y in the viewport.
 
void setCaption ()
 Change the caption on the viewport title bar.
 
void setBackground (QColor color)
 Sets the background color.
 
void setComboCount (int count)
 Sets the band bin combo box count.
 
void setComboIndex (int index)
 Sets the band bin combo box index.
 
QPixmap pixmap ()
 Returns the pixmap.
 
ViewportBuffergrayBuffer ()
 Returns the gray viewport buffer (Will be NULL if in RGB mode.)
 
ViewportBufferredBuffer ()
 Returns the red viewport buffer (Will be NULL if in Gray mode.)
 
ViewportBuffergreenBuffer ()
 Returns the green viewport buffer (Will be NULL if in Gray mode.)
 
ViewportBufferblueBuffer ()
 Returns the blue viewport buffer (Will be NULL if in Gray mode.)
 
void bufferUpdated (QRect rect)
 This method is called by ViewportBuffer upon successful completion of all operations and gives the appropriate rect to be repainted.
 
virtual void restretch (ViewportBuffer *buffer)=0
 This is called by internal viewport buffers when a stretch action should be performed.
 
void paintPixmap ()
 Paint the whole pixmap.
 
void forgetStretches ()
 Resets all remembered stretches.
 
void setAllBandStretches (Stretch stretch)
 Sets a stretch for all bands.
 
CubeDataThreadcubeDataThread ()
 
int cubeID ()
 
void getAllWhatsThisInfo (Pvl &pWhatsThisPvl)
 Get All WhatsThis info - viewport, cube, area in PVL format.
 
void getBandFilterName (PvlKeyword &pFilterNameKey)
 Get Band Filter name from the Isis cube label.
 
void getCubeArea (double &pdStartSample, double &pdEndSample, double &pdStartLine, double &pdEndLine)
 Get Cube area corresponding to the viewport's dimension.
 
bool confirmClose ()
 This method should be called during a close event that would cause this viewport to close.
 
void setTrackingCube ()
 Finds the Tracking group from p_cube and stores the tracking cube name so that we can grab it in AdvancedTrackTool and get mosaic information.
 

Protected Slots

virtual void cubeDataChanged (int cubeId, const Isis::Brick *)
 This method updates the internal viewport buffer based on changes in cube DN values.
 

Protected Member Functions

void scrollContentsBy (int dx, int dy)
 Scroll the viewport contents by dx/dy screen pixels.
 
virtual void resizeEvent (QResizeEvent *e)
 The viewport is being resized.
 
virtual bool eventFilter (QObject *o, QEvent *e)
 Event filter to watch for mouse events on viewport.
 
virtual void keyPressEvent (QKeyEvent *e)
 Process arrow keystrokes on cube.
 
virtual void paintEvent (QPaintEvent *e)
 Repaint the viewport.
 

Protected Attributes

QPixmap p_pixmap
 The qpixmap.
 
QVector< Stretch * > * p_knownStretches
 Stretches for each previously stretched band.
 
QVector< Stretch * > * p_globalStretches
 Global stretches for each stretched band.
 

Detailed Description

Widget to display Isis cubes for qt apps.

Author
????-??-?? Jeff Anderson

Constructor & Destructor Documentation

◆ CubeViewport()

◆ ~CubeViewport()

Isis::CubeViewport::~CubeViewport ( )
virtual

Deconstructor for the Cubeviewport.

Destructor.

References p_globalStretches, p_knownStretches, and Isis::CubeDataThread::RemoveChangeListener().

Member Function Documentation

◆ blueBand()

int Isis::CubeViewport::blueBand ( ) const
inline
Returns
the blue band currently viewed

References Isis::CubeViewport::BandInfo::band.

Referenced by stretchBlue(), and stretchKnownGlobal().

◆ blueBuffer()

ViewportBuffer * Isis::CubeViewport::blueBuffer ( )
inline

Returns the blue viewport buffer (Will be NULL if in Gray mode.)

Returns
ViewportBuffer*

Referenced by Isis::MdiCubeViewport::restretch().

◆ bluePixel()

double Isis::CubeViewport::bluePixel ( int sample,
int line )

Gets the blue pixel.

Return the blue pixel value at a sample/line.

Parameters
sampleThe sample
lineThe line
Returns
The bluePixel value
Parameters
sample
line
Returns
double

References Isis::CubeViewport::BandInfo::band, Isis::Cube::read(), and Isis::Brick::SetBasePosition().

◆ blueStretch()

CubeStretch Isis::CubeViewport::blueStretch ( ) const

Return the blue band stretch.

Returns
The blue Strech

References Isis::CubeViewport::BandInfo::getStretch().

◆ bufferUpdated()

void Isis::CubeViewport::bufferUpdated ( QRect rect)

This method is called by ViewportBuffer upon successful completion of all operations and gives the appropriate rect to be repainted.

This is intended to update the screen once all data is done and ready to be displayed.

Parameters
rectArea to update screen

References paintPixmap(), and Isis::ViewportBuffer::working().

◆ camera()

Camera * Isis::CubeViewport::camera ( ) const
inline
Returns
The camera associated with the cube (NULL implies none)

◆ center [1/2]

void Isis::CubeViewport::center ( double sample,
double line )
slot

Bring the cube sample/line the center.

Parameters
sampleValue of the sample to center on.
lineValue of the line to center on.

References cubeToContents(), Isis::ViewportBuffer::pan(), and screenPixelsChanged().

◆ center [2/2]

void Isis::CubeViewport::center ( int x,
int y )
slot

Bring the cube pixel under viewport x/y to the center.

Parameters
x
y

References center(), and viewportToCube().

Referenced by center(), and setScale().

◆ changeCursor

void Isis::CubeViewport::changeCursor ( QCursor cursor)
slot

Allows users to change the cursor type on the viewport.

Parameters
cursor

◆ comboCount()

int Isis::CubeViewport::comboCount ( ) const
inline
Returns
the BandBin combo box count

◆ comboIndex()

int Isis::CubeViewport::comboIndex ( ) const
inline
Returns
the BandBin combo box index

◆ confirmClose()

bool Isis::CubeViewport::confirmClose ( )

This method should be called during a close event that would cause this viewport to close.

If changes have been made to this viewport it opens an information dialog that asks the user if they want to save, discard changes, or cancel.

Returns
True if closing is OK, false if it needs to be cancelled.

References cube(), discardChanges(), and saveChanges().

◆ contentsToCube()

void Isis::CubeViewport::contentsToCube ( int x,
int y,
double & sample,
double & line ) const

Turns contents to a cube.

Convert a contents x/y to a cube sample/line (may be outside the cube)

Parameters
x
y
sample
line

Referenced by setScale(), and viewportToCube().

◆ cube()

◆ cubeBands()

int Isis::CubeViewport::cubeBands ( ) const

Return the number of bands in the cube.

Returns
The number of bands in the cube

References Isis::Cube::bandCount().

Referenced by Isis::IndependentCubeViewport::resetKnownGlobal().

◆ cubeChanged

void Isis::CubeViewport::cubeChanged ( bool changed)
slot

This method is called when the cube has changed or changes have been finalized.

Parameters
changed

◆ cubeContentsChanged()

void Isis::CubeViewport::cubeContentsChanged ( QRect rect)

Calle dhwen the contents of the cube changes.

Cube changed, repaint given area.

Parameters
rectThe QRect
rectRectangle containing portion of cube (sample/line) that changed.

References cube(), cubeToViewport(), Isis::ViewportBuffer::fillBuffer(), Isis::Cube::lineCount(), and Isis::Cube::sampleCount().

◆ cubeDataChanged

void Isis::CubeViewport::cubeDataChanged ( int cubeId,
const Isis::Brick * data )
protectedvirtualslot

This method updates the internal viewport buffer based on changes in cube DN values.

Parameters
cubeIdCube that the changed brick belongs to
*data New data

References cube(), cubeToViewport(), doneWithData(), Isis::ViewportBuffer::fillBuffer(), Isis::Buffer::Line(), Isis::Cube::lineCount(), Isis::Buffer::LineDimension(), Isis::Buffer::Sample(), Isis::Cube::sampleCount(), and Isis::Buffer::SampleDimension().

Referenced by Isis::IndependentCubeViewport::cubeDataChanged(), and CubeViewport().

◆ cubeDataThread()

CubeDataThread * Isis::CubeViewport::cubeDataThread ( )
inline

◆ cubeID()

int Isis::CubeViewport::cubeID ( )
inline

◆ cubeLines()

int Isis::CubeViewport::cubeLines ( ) const

Return the number of lines in the cube.

Returns
The number of lines in the cube

References Isis::Cube::lineCount().

Referenced by Isis::IndependentCubeViewport::cubeDataChanged(), fitScale(), fitScaleHeight(), getCubeArea(), Isis::ViewportBuffer::hasEntireCube(), setScale(), and showEvent().

◆ cubeSamples()

int Isis::CubeViewport::cubeSamples ( ) const

Return the number of samples in the cube.

Returns
The number of samples in the cube

References Isis::Cube::sampleCount().

Referenced by Isis::IndependentCubeViewport::cubeDataChanged(), fitScale(), fitScaleWidth(), getCubeArea(), Isis::ViewportBuffer::hasEntireCube(), setScale(), and showEvent().

◆ cubeShown()

bool Isis::CubeViewport::cubeShown ( ) const
inline
Returns
if the cube is visible

◆ cubeToContents()

void Isis::CubeViewport::cubeToContents ( double sample,
double line,
int & x,
int & y ) const

Turns a cube into contents.

Convert a cube sample/line to a contents x/y (should not be outside)

Parameters
x
y
sample
line
sample
line
x
y

Referenced by center(), cubeToViewport(), and setScale().

◆ cubeToViewport()

void Isis::CubeViewport::cubeToViewport ( double sample,
double line,
int & x,
int & y ) const

Turns a cube into a viewport.

Convert a cube sample/line to a viewport x/y (may be outside the viewport)

Parameters
x
y
sample
line
sample
line
x
y

References cubeToContents().

Referenced by cubeContentsChanged(), and cubeDataChanged().

◆ cursorInside()

bool Isis::CubeViewport::cursorInside ( ) const

Is cursor inside viewport.

Returns
bool

◆ cursorPosition()

QPoint Isis::CubeViewport::cursorPosition ( ) const

Return the cursor position in the viewport.

Returns
QPoint

◆ discardChanges

void Isis::CubeViewport::discardChanges ( CubeViewport * )
signal

Emitted when changes should be discarded.

Referenced by confirmClose().

◆ doneWithData

void Isis::CubeViewport::doneWithData ( int ,
const Isis::Brick *  )
signal

Emitted when a brick is no longer needed, should only be sent to cube data thread.

Referenced by cubeDataChanged(), and CubeViewport().

◆ enableProgress

void Isis::CubeViewport::enableProgress ( )
slot

This restarts the progress bar.

Does nothing if already loading.

References progressChanged().

◆ eventFilter()

bool Isis::CubeViewport::eventFilter ( QObject * o,
QEvent * e )
protectedvirtual

Event filter to watch for mouse events on viewport.

Parameters
o
e
Returns
bool

Reimplemented in Isis::IndependentCubeViewport.

References mouseButtonPress(), mouseButtonRelease(), mouseDoubleClick(), mouseEnter(), mouseLeave(), and mouseMove().

◆ fitScale()

double Isis::CubeViewport::fitScale ( ) const

Determine the scale that causes the full cube to fit in the viewport.

Returns
The fitScale of the Viewport
The scale

References cubeLines(), cubeSamples(), and scale().

Referenced by showEvent().

◆ fitScaleHeight()

double Isis::CubeViewport::fitScaleHeight ( ) const

Determine the scale of cube in heighth to fit in the viewport.

Returns
The height of the Viewport/
The scale for height

References cubeLines(), and scale().

◆ fitScaleWidth()

double Isis::CubeViewport::fitScaleWidth ( ) const

Determine the scale of cube in the width to fit in the viewport.

Returns
The width of the Viewport
The scale for width

References cubeSamples(), and scale().

◆ forgetStretches()

void Isis::CubeViewport::forgetStretches ( )

Resets all remembered stretches.

References p_knownStretches.

◆ getAllWhatsThisInfo()

void Isis::CubeViewport::getAllWhatsThisInfo ( Pvl & pWhatsThisPvl)

Get All WhatsThis info - viewport, cube, area in PVL format.

Parameters
pWhatsThisPvl- Pvl for all whatsthis info
Author
Sharmila Prasad (4/5/2011)
Parameters
pWhatsThisPvl- Pvl for all whatsthis info

References Isis::Cube::bandCount(), Isis::Cube::fileName(), Isis::ViewportBuffer::getBand(), getBandFilterName(), getCubeArea(), Isis::Cube::lineCount(), Isis::Cube::physicalBand(), Isis::Cube::sampleCount(), and Isis::toString().

Referenced by Isis::FileTool::saveInfo().

◆ getBandFilterName()

void Isis::CubeViewport::getBandFilterName ( PvlKeyword & pFilterNameKey)

Get Band Filter name from the Isis cube label.

Parameters
pFilterNameKey- FilterName keyword containing the corresponding keyword from the Isis Cube label
Author
Sharmila Prasad (4/5/2011)
Parameters
pFilterNameKey- FilterName keyword containing the corresponding keyword from the Isis Cube label

References Isis::PvlContainer::findKeyword(), Isis::PvlObject::findObject(), and Isis::Cube::label().

Referenced by getAllWhatsThisInfo().

◆ getCubeArea()

void Isis::CubeViewport::getCubeArea ( double & pdStartSample,
double & pdEndSample,
double & pdStartLine,
double & pdEndLine )

Get Cube area corresponding to the viewport's dimension.

Parameters
pdStartSample- Cube Start Sample
pdEndSample- Cube End Sample
pdStartLine- Cube Start Line
pdEndLine- Cube End Line

References cubeLines(), cubeSamples(), and viewportToCube().

Referenced by getAllWhatsThisInfo().

◆ grayBand()

int Isis::CubeViewport::grayBand ( ) const
inline

◆ grayBuffer()

ViewportBuffer * Isis::CubeViewport::grayBuffer ( )
inline

Returns the gray viewport buffer (Will be NULL if in RGB mode.)

Returns
ViewportBuffer*

Referenced by Isis::IndependentCubeViewport::resetKnownGlobal(), Isis::MdiCubeViewport::restretch(), and Isis::IndependentCubeViewport::showEvent().

◆ grayPixel()

double Isis::CubeViewport::grayPixel ( int sample,
int line )

Gets the gray pixel.

Return the gray pixel value at a sample/line.

Parameters
sampleThe sample
lineThe line
Returns
The grayPixel value
Parameters
sample
line
Returns
double

References Isis::CubeViewport::BandInfo::band, Isis::Cube::read(), and Isis::Brick::SetBasePosition().

◆ grayStretch()

CubeStretch Isis::CubeViewport::grayStretch ( ) const

◆ greenBand()

int Isis::CubeViewport::greenBand ( ) const
inline
Returns
the green band currently viewed

References Isis::CubeViewport::BandInfo::band.

Referenced by stretchGreen(), and stretchKnownGlobal().

◆ greenBuffer()

ViewportBuffer * Isis::CubeViewport::greenBuffer ( )
inline

Returns the green viewport buffer (Will be NULL if in Gray mode.)

Returns
ViewportBuffer*

Referenced by Isis::MdiCubeViewport::restretch().

◆ greenPixel()

double Isis::CubeViewport::greenPixel ( int sample,
int line )

Gets the green pixel.

Return the green pixel value at a sample/line.

Parameters
sampleThe sample
lineThe line
Returns
The greenPixel value
Parameters
sample
line
Returns
double

References Isis::CubeViewport::BandInfo::band, Isis::Cube::read(), and Isis::Brick::SetBasePosition().

◆ greenStretch()

CubeStretch Isis::CubeViewport::greenStretch ( ) const

Return the green band stretch.

Returns
The green Stretch

References Isis::CubeViewport::BandInfo::getStretch().

◆ isColor()

bool Isis::CubeViewport::isColor ( ) const
inline
Returns
Is the viewport shown in 3-band color

◆ isGray()

bool Isis::CubeViewport::isGray ( ) const
inline
Returns
Is the viewport shown in gray / b&w

Referenced by Isis::SpatialPlotTool::refreshPlot(), and stretchKnownGlobal().

◆ keyPressEvent()

void Isis::CubeViewport::keyPressEvent ( QKeyEvent * e)
protectedvirtual

Process arrow keystrokes on cube.

Parameters
e
History
2017-08-11 Adam Goins - Added the ability to ctrl + c to copy the filename of the current cube into the system's clipboard. Fixes #5098.

References Isis::Cube::fileName(), moveCursor(), scale(), and setScale().

◆ mouseButtonPress

void Isis::CubeViewport::mouseButtonPress ( QPoint ,
Qt::MouseButton  )
signal

Emitted when mouse button pressed.

Referenced by eventFilter().

◆ mouseButtonRelease

void Isis::CubeViewport::mouseButtonRelease ( QPoint ,
Qt::MouseButton  )
signal

Emitted when mouse button released.

Referenced by eventFilter().

◆ mouseDoubleClick

void Isis::CubeViewport::mouseDoubleClick ( QPoint )
signal

Emitted when double click happens.

Referenced by eventFilter().

◆ mouseEnter

void Isis::CubeViewport::mouseEnter ( )
signal

Emitted when the mouse enters the viewport.

Referenced by eventFilter(), and Isis::IndependentCubeViewport::eventFilter().

◆ mouseLeave

void Isis::CubeViewport::mouseLeave ( )
signal

Emitted when the mouse leaves the viewport.

Referenced by eventFilter(), and Isis::IndependentCubeViewport::eventFilter().

◆ mouseMove [1/2]

void Isis::CubeViewport::mouseMove ( QPoint )
signal

Emitted when the mouse moves.

Referenced by eventFilter().

◆ mouseMove [2/2]

void Isis::CubeViewport::mouseMove ( QPoint ,
Qt::MouseButton  )
signal

Emitted when the mouse moves.

◆ moveCursor()

void Isis::CubeViewport::moveCursor ( int x,
int y )

Move the cursor by x,y if possible.

Parameters
x
y

Referenced by keyPressEvent().

◆ onProgressTimer

void Isis::CubeViewport::onProgressTimer ( )
slot

This updates the progress bar visually.

Conceptually it emits the progressChanged signal with the current progress.

References Isis::ViewportBuffer::currentProgress(), progressChanged(), progressComplete(), screenPixelsChanged(), and Isis::ViewportBuffer::working().

Referenced by CubeViewport().

◆ paintEvent()

void Isis::CubeViewport::paintEvent ( QPaintEvent * e)
protectedvirtual

Repaint the viewport.

Parameters
e[in] (QPaintEvent *) event

Reimplemented in Isis::IndependentCubeViewport, and Isis::MdiCubeViewport.

Referenced by Isis::IndependentCubeViewport::paintEvent(), and Isis::MdiCubeViewport::paintEvent().

◆ paintPixmap()

void Isis::CubeViewport::paintPixmap ( )

◆ pixmap()

QPixmap Isis::CubeViewport::pixmap ( )
inline

Returns the pixmap.

Returns
QPixmap

References p_pixmap.

Referenced by Isis::BlinkTool::eventFilter().

◆ progressChanged

void Isis::CubeViewport::progressChanged ( int )
signal

Emitted with current progress (0 to 100) when working.

Referenced by enableProgress(), and onProgressTimer().

◆ progressComplete

void Isis::CubeViewport::progressComplete ( )
signal

Emitted when the current progress is complete (100)

Referenced by onProgressTimer().

◆ projection()

Projection * Isis::CubeViewport::projection ( ) const
inline
Returns
The projection associated with cube (NULL implies none)

◆ redBand()

int Isis::CubeViewport::redBand ( ) const
inline
Returns
the red band currently viewed

References Isis::CubeViewport::BandInfo::band.

Referenced by Isis::SpatialPlotTool::refreshPlot(), stretchKnownGlobal(), and stretchRed().

◆ redBuffer()

ViewportBuffer * Isis::CubeViewport::redBuffer ( )
inline

Returns the red viewport buffer (Will be NULL if in Gray mode.)

Returns
ViewportBuffer*

Referenced by Isis::MdiCubeViewport::restretch().

◆ redPixel()

double Isis::CubeViewport::redPixel ( int sample,
int line )

Gets the red pixel.

Return the red pixel value at a sample/line.

Parameters
sampleThe sample
lineThe line
Returns
The redPixel value
Parameters
sample
line
Returns
double

References Isis::CubeViewport::BandInfo::band, Isis::Cube::read(), and Isis::Brick::SetBasePosition().

◆ redStretch()

CubeStretch Isis::CubeViewport::redStretch ( ) const

Return the red band stretch.

Returns
The red Stretch

References Isis::CubeViewport::BandInfo::getStretch().

◆ resizeEvent()

void Isis::CubeViewport::resizeEvent ( QResizeEvent * e)
protectedvirtual

The viewport is being resized.

Parameters
e

References p_pixmap, paintPixmap(), Isis::ViewportBuffer::resizedViewport(), and screenPixelsChanged().

◆ restretch()

virtual void Isis::CubeViewport::restretch ( ViewportBuffer * buffer)
pure virtual

This is called by internal viewport buffers when a stretch action should be performed.

The buffer passes itself as the argument.

Parameters
buffer

Implemented in Isis::IndependentCubeViewport, and Isis::MdiCubeViewport.

◆ saveChanges

void Isis::CubeViewport::saveChanges ( CubeViewport * )
signal

Emitted when changes should be saved.

Referenced by confirmClose().

◆ scale()

◆ scaleChanged

void Isis::CubeViewport::scaleChanged ( )
signal

Emitted when zoom factor changed just before the repaint event.

Referenced by setScale().

◆ screenPixelsChanged

void Isis::CubeViewport::screenPixelsChanged ( )
signal

Emitted when cube pixels that should be on the screen change.

Referenced by center(), onProgressTimer(), resizeEvent(), scrollContentsBy(), setScale(), and setScale().

◆ scrollBy

void Isis::CubeViewport::scrollBy ( int dx,
int dy )
slot

Move the scrollbars by dx/dy screen pixels.

Parameters
dx
dy

References scrollContentsBy().

◆ scrollContentsBy()

void Isis::CubeViewport::scrollContentsBy ( int dx,
int dy )
protected

Scroll the viewport contents by dx/dy screen pixels.

Parameters
dx
dy

References Isis::ViewportBuffer::bufferXYRect(), paintPixmap(), Isis::ViewportBuffer::pan(), screenPixelsChanged(), and Isis::ViewportBuffer::working().

Referenced by scrollBy().

◆ setAllBandStretches()

void Isis::CubeViewport::setAllBandStretches ( Stretch stretch)

Sets a stretch for all bands.

Parameters
stretch

References p_knownStretches.

◆ setBackground()

void Isis::CubeViewport::setBackground ( QColor color)
inline

Sets the background color.

Parameters
color

◆ setCaption()

void Isis::CubeViewport::setCaption ( )

Change the caption on the viewport title bar.

References Isis::CubeViewport::BandInfo::band, Isis::Cube::fileName(), and windowTitleChanged().

Referenced by CubeViewport(), setCube(), setScale(), viewGray(), and viewRGB().

◆ setComboCount()

void Isis::CubeViewport::setComboCount ( int count)
inline

Sets the band bin combo box count.

Parameters
count

◆ setComboIndex()

void Isis::CubeViewport::setComboIndex ( int index)
inline

Sets the band bin combo box index.

Parameters
index

◆ setCube()

void Isis::CubeViewport::setCube ( Cube * cube)

This method sets the viewports cube.

Parameters
cubeThe cube to set the CubeViewport window to
cube

References cube(), and setCaption().

◆ setCursorPosition()

void Isis::CubeViewport::setCursorPosition ( int x,
int y )

Set the cursor position to x/y in the viewport.

Parameters
x
y

◆ setScale [1/3]

void Isis::CubeViewport::setScale ( double scale)
slot

Change the scale of the cube to the given parameter value.

This method will reset the scale value if the value passed in is too large or too small.

Parameters
scaleValue by which to scale the image.

References contentsToCube(), cubeLines(), cubeSamples(), cubeToContents(), paintPixmap(), scale(), scaleChanged(), Isis::ViewportBuffer::scaleChanged(), screenPixelsChanged(), and setCaption().

Referenced by keyPressEvent(), setScale(), setScale(), and showEvent().

◆ setScale [2/3]

void Isis::CubeViewport::setScale ( double scale,
double sample,
double line )
slot

Change the scale of the cube after moving samp/line to the center.

Parameters
scale
sample
line

References center(), Isis::ViewportBuffer::enable(), Isis::ViewportBuffer::enabled(), paintPixmap(), scale(), screenPixelsChanged(), and setScale().

◆ setScale [3/3]

void Isis::CubeViewport::setScale ( double scale,
int x,
int y )
slot

Change the scale of the cube after moving x,y to the center.

Parameters
scale
x
y

References scale(), setScale(), and viewportToCube().

◆ setTrackingCube()

void Isis::CubeViewport::setTrackingCube ( )

Finds the Tracking group from p_cube and stores the tracking cube name so that we can grab it in AdvancedTrackTool and get mosaic information.

This way, we are not opening the tracking cube every time the cursor is moved.

References Isis::Cube::fileName(), Isis::Cube::group(), and trackingCube().

Referenced by CubeViewport().

◆ showEvent

void Isis::CubeViewport::showEvent ( QShowEvent * event)
slot

This method is called to initially show the viewport.

It will set the scale to show the entire cube and enable the gray buffer.

Parameters
eventShow event being received.
See also
http://doc.qt.io/qt-5/qwidget.html#showEvent

References Isis::ViewportBuffer::addStretchAction(), cubeLines(), cubeSamples(), Isis::ViewportBuffer::enable(), Isis::ViewportBuffer::enabled(), fitScale(), paintPixmap(), and setScale().

Referenced by Isis::IndependentCubeViewport::showEvent().

◆ sizeHint

QSize Isis::CubeViewport::sizeHint ( ) const
slot

Make viewports show up as 512 by 512.

Returns
QSize

◆ stretchBlue [1/2]

void Isis::CubeViewport::stretchBlue ( const QString & string)
slot

Apply stretch pairs to blue bands.

Parameters
string

References Isis::Stretch::Parse(), and stretchBlue().

Referenced by stretchBlue(), and stretchKnownGlobal().

◆ stretchBlue [2/2]

void Isis::CubeViewport::stretchBlue ( const Stretch & stretch)
slot

◆ stretchGray [1/2]

void Isis::CubeViewport::stretchGray ( const QString & string)
slot

◆ stretchGray [2/2]

void Isis::CubeViewport::stretchGray ( const Stretch & stretch)
slot

◆ stretchGreen [1/2]

void Isis::CubeViewport::stretchGreen ( const QString & string)
slot

Apply stretch pairs to green bands.

Parameters
stringthe stretch

References Isis::Stretch::Parse(), and stretchGreen().

Referenced by stretchGreen(), and stretchKnownGlobal().

◆ stretchGreen [2/2]

void Isis::CubeViewport::stretchGreen ( const Stretch & stretch)
slot

◆ stretchKnownGlobal

void Isis::CubeViewport::stretchKnownGlobal ( )
slot

List<Tool *> p This stretches to the global stretch.

References blueBand(), grayBand(), greenBand(), isGray(), p_globalStretches, redBand(), stretchBlue(), stretchGray(), stretchGreen(), and stretchRed().

◆ stretchRed [1/2]

void Isis::CubeViewport::stretchRed ( const QString & string)
slot

Apply stretch pairs to red bands.

Parameters
stringThe stretch

References Isis::Stretch::Parse(), and stretchRed().

Referenced by stretchKnownGlobal(), and stretchRed().

◆ stretchRed [2/2]

void Isis::CubeViewport::stretchRed ( const Stretch & stretch)
slot

◆ trackingCube()

Cube * Isis::CubeViewport::trackingCube ( ) const
inline
Returns
The tracking cube associated with p_cube (if it has one)

Referenced by setTrackingCube().

◆ universalGroundMap()

UniversalGroundMap * Isis::CubeViewport::universalGroundMap ( ) const
inline
Returns
the universal ground map associated with the cube (NULL implies none)

◆ viewGray

◆ viewportClosed

void Isis::CubeViewport::viewportClosed ( CubeViewport * )
signal

Emitted when viewport is closed.

◆ viewportToCube()

void Isis::CubeViewport::viewportToCube ( int x,
int y,
double & sample,
double & line ) const

Turns a viewport into a cube.

Convert a viewport x/y to a cube sample/line (may be outside the cube)

Parameters
x
y
sample
line

References contentsToCube().

Referenced by center(), getCubeArea(), Isis::SunShadowTool::mouseButtonPress(), Isis::SunShadowTool::mouseMove(), setScale(), and Isis::HistogramItem::setVertices().

◆ viewportUpdated

void Isis::CubeViewport::viewportUpdated ( )
signal

Emitted when viewport updated.

Referenced by Isis::MdiCubeViewport::paintEvent().

◆ viewRGB

◆ windowTitleChanged

void Isis::CubeViewport::windowTitleChanged ( )
signal

Emitted when window title changes.

Referenced by setCaption().

Member Data Documentation

◆ p_globalStretches

QVector< Stretch * >* Isis::CubeViewport::p_globalStretches
protected

◆ p_knownStretches

QVector< Stretch * >* Isis::CubeViewport::p_knownStretches
protected

Stretches for each previously stretched band.

Referenced by CubeViewport(), forgetStretches(), setAllBandStretches(), viewGray(), viewRGB(), and ~CubeViewport().

◆ p_pixmap

QPixmap Isis::CubeViewport::p_pixmap
protected

The documentation for this class was generated from the following files: