Isis 3 Programmer Reference
Isis::StretchTool Class Reference

Stretch image edit tool. More...

#include <StretchTool.h>

Inheritance diagram for Isis::StretchTool:
Inheritance graph
Collaboration diagram for Isis::StretchTool:
Collaboration graph

Public Types

enum  StretchBand {
  Gray , Red , Green , Blue ,
  All
}
 Enum to store the bands. More...
 

Public Slots

void stretchGlobal ()
 Does a global stretch for the active viewport.
 
void stretchGlobal (CubeViewport *)
 Does a global stretch for the specified viewport.
 
void stretchGlobalAllBands ()
 This resets the stretch across all bands.
 
void stretchGlobalAllViewports ()
 Does a global stretch for all the viewports.
 
void stretchRegional ()
 Does a regional stretch for the active viewport.
 
void stretchRegional (CubeViewport *)
 Does a regional stretch for the specified viewport.
 
void activate (bool)
 Activates the tool.
 
void setCubeViewport (MdiCubeViewport *cvp)
 Sets the current viewport to the given cvp.
 

Signals

void stretchChipViewport (Stretch *, CubeViewport *)
 when a viewport is stretched, send the stretch and the viewport associated with it to any ChipViewport's that might be listening
 
void warningSignal (std::string &pStr, const std::string pExStr)
 Shows a warning.
 
void clearWarningSignal ()
 
void toolActivated ()
 
void viewportChanged ()
 

Public Member Functions

 StretchTool (QWidget *parent)
 StretchTool constructor.
 
 ~StretchTool ()
 Destructor.
 
void addTo (QMenu *menu)
 Adds the stretch action to the given menu.
 
void updateAdvStretchDialogforAll (void)
 Update the streches and corresponding histograms for all the colors Red, Green and Blue for Stretch All Mode.
 
QString menuName () const
 This let's Tool know which Menu the actions this class has should be added to.
 
void addTo (ViewportMainWindow *mw)
 Adds the tool to the application.
 
void addTo (ToolPad *toolpad)
 Adds the tool to the toolpad.
 
virtual void addTo (Workspace *ws)
 Adds the given workspace to the cubeviewport list.
 
virtual void addToPermanent (QToolBar *toolbar)
 
void addToActive (QToolBar *toolbar)
 
QString toolIconDir () const
 returns the path to the icon directory.
 
virtual void paintViewport (MdiCubeViewport *vp, QPainter *painter)
 
RubberBandToolrubberBandTool ()
 
void setList (ToolList *currentList)
 

Static Public Member Functions

static Stretch stretchBuffer (ViewportBuffer *buffer, QRect rect)
 This method computes the stretch over a region using the viewport buffer.
 
static Stretch stretchBand (CubeViewport *cvp, StretchBand band)
 This method computes the stretch over the entire cube.
 
static Statistics statsFromCube (Cube *cube, int band)
 This method will calculate and return the statistics for a given cube and band.
 
static Statistics statsFromBuffer (ViewportBuffer *buffer, QRect rect)
 This method will calculate and return the statistics for a given region and viewport buffer.
 
static Histogram histFromCube (Cube *cube, int band, double min, double max)
 This method will calculate and return the histogram for a given cube and band.
 
static Histogram histFromBuffer (ViewportBuffer *buffer)
 Given a viewport buffer, this calculates a histogram.
 
static Histogram histFromBuffer (ViewportBuffer *buffer, QRect rect, double min, double max)
 This method will calculate and return the histogram for a given region and viewport buffer.
 

Protected Types

typedef QVector< MdiCubeViewport * > CubeViewportList
 A list of cubeviewports.
 

Protected Slots

void mouseButtonRelease (QPoint p, Qt::MouseButton s)
 This method will call a global stretch if the right mouse button is released.
 
void saveStretchToCube ()
 Saves a strech to the cube.
 
void deleteFromCube ()
 Deletes a saved stretch from the cube.
 
void loadStretchFromCube ()
 Restores a saved stretch from the cube.
 
void enableRubberBandTool ()
 This method enables the RubberBandTool.
 
void screenPixelsChanged ()
 This is called when the visible area changes.
 
void updateHistograms ()
 This updates the visible histograms in the advanced stretch, if present.
 
void rubberBandComplete ()
 This method is called when the RubberBandTool is complete.
 
void setCubeViewport (CubeViewport *)
 This updates the advanced stretch to use the given viewport.
 
virtual void mouseEnter ()
 
virtual void mouseMove (QPoint p)
 
virtual void mouseMove (QPoint p, Qt::MouseButton)
 
virtual void mouseLeave ()
 

Protected Member Functions

QActiontoolPadAction (ToolPad *pad)
 Adds the stretch action to the toolpad.
 
QWidgetcreateToolBarWidget (QStackedWidget *parent)
 Creates the widget to add to the tool bar.
 
void updateTool ()
 Updates the stretch tool.
 
void stretchRequested (MdiCubeViewport *cvp, int bandId)
 The cube viewport requested a stretch at this time, give it to the viewport.
 
virtual void mouseDoubleClick (QPoint p)
 
virtual void mouseButtonPress (QPoint p, Qt::MouseButton s)
 
virtual void updateMeasure ()
 
virtual void scaleChanged ()
 
void registerTool (MdiCubeViewport *viewport)
 Registers the tool to the viewport.
 
MdiCubeViewportcubeViewport () const
 Return the current cubeviewport.
 
CubeViewportListcubeViewportList () const
 Return the list of cubeviewports.
 
virtual void addConnections (MdiCubeViewport *cvp)
 Anytime a tool is created, you must add the connections for it.
 
virtual void removeConnections (MdiCubeViewport *cvp)
 Anytime a tool is created, you must be able to remove it's connections.
 
Workspaceworkspace ()
 

Private Slots

void stretchChanged ()
 This method is called when the stretch has changed and sets the min/max text fields to the correct values.
 
void advancedStretchChanged ()
 This is called when one of the advanced stretches changed.
 
void changeStretch ()
 This method is called when the stretch has changed and sets the min/max text fields to the correct values.
 
void showAdvancedDialog ()
 This methods shows and updates the advanced dialog.
 
void setStretchAcrossBands ()
 Sets the stretch for all the bands in the active viewport to the current stretch.
 
void setStretchAllViewports ()
 Sets the stretch for all the viewports to the current stretch in the active viewport.
 
void stretchBandChanged (int)
 The selected band for stretching changed.
 

Private Member Functions

void stretchRect (CubeViewport *cvp, QRect rect)
 stretch the specified CubeViewport with the given rect
 
void addViewportConnections ()
 Makes all the connections for the tool.
 
void removeViewportConnections ()
 Removes all the connections from the tool.
 
void enableToolBar ()
 Enables entire tool bar.
 
void disableToolBar ()
 Disables entire tool bar.
 

Private Attributes

AdvancedStretchDialogm_advancedStretch
 The advanced dialog.
 
QToolButton * m_copyButton
 Copy Button.
 
QToolButton * m_globalButton
 Global Button.
 
QToolButton * m_stretchRegionalButton
 Regional Stretch Button.
 
QPushButton * m_flashButton
 Button to press for global stretch.
 
QActionm_stretchGlobal
 Global stretch action.
 
QActionm_stretchRegional
 Regional stretch action.
 
QActionm_stretchManual
 Manual stretch action.
 
QActionm_copyBands
 Copy band stretch action.
 
QComboBoxm_stretchBandComboBox
 Stretch combo box.
 
QLineEdit * m_stretchMinEdit
 Min. line edit.
 
QLineEdit * m_stretchMaxEdit
 Max. line edit.
 
StretchBand m_stretchBand
 Current stretch band.
 
Stretchm_preGlobalStretches
 Stretches before global button pressed.
 
Stretchm_chipViewportStretch
 ChipViewport's stretch.
 
MdiCubeViewportm_cvp
 current cubeviewport
 
Workspacem_workspace
 
bool m_active
 Is the tool acitve?
 
QWidgetm_toolBarWidget
 The tool bar on which this tool resides.
 
QActionm_toolPadAction
 The tool pad on which this tool resides.
 
QString m_toolIconDir
 The pathway to the icon directory.
 
ToolListm_toolList
 

Detailed Description

Stretch image edit tool.

This tool is part of the Qisis namespace and allows interactive editing of displayed images.

Author
????-??-?? Unknown
History

2008-05-23 Noah Hilt - Added RubberBandTool

2010-03-18 Sharmila Prasad - Exception handling and emit warning signal to the Viewportwindow to display warning status on the status bar(Track Tool)

2010-04-08 Steven Lambright - Made to work with threaded viewportbuffer and also removed map to viewport stretches due to synchronization problems.

2010-04-08 Steven Lambright - Fixed access of viewport data for statistics

2010-05-20 Steven Lambright - Re-enabled the advanced stretch... without a viewport map!

2010-06-26 Eric Hyer

2010-08-30 Eric Hyer

  • Added RGB support for stretchRegional
  • stretchRegional and rubberBandComplete now use the new private method stretchRect in order to avoid duplicate code.

2010-11-22 Eric Hyer - new SIGNAL called stretchChipViewport exists for sending stretches made in CubeViewports to any ChipViewports that want to get stretched.

2010-12-01 Steven Lambright - Improved stretch copy abilities

2010-12-02 Eric Hyer - changed where stretchChipViewport is emitted.

2011-03-22 Sharmila Prasad - Add option to stretch All Bands

2011-11-04 Steven Lambright - Improved advanced stretch to allow all stretches to be changed despite combo box. References #567.

2012-01-18 Steven Lambright - Fixed a bug that caused the stretch pair line edits to not update properly in grey mode when the color mode band selection was set to all. Also, fixed layout of stretch options to correctly squeeze widgets left. Fixes #640.

2012-06-11 Steven Lambright - Fixed a bug that caused the stretch pair line edits to not update properly when switching between viewports, and another that caused the stretch to be copied the new viewport if the advanced stretch dialog is active. Fixes #771.

2015-08-07 Makayla Shepherd - No longer crashes when the user attempts to apply a stretch while the cube is still loading. This crash was caused by an unhandled exception being thrown in a connected slot. Fixes #2117.

Definition at line 85 of file StretchTool.h.

Member Typedef Documentation

◆ CubeViewportList

typedef QVector< MdiCubeViewport * > Isis::Tool::CubeViewportList
protectedinherited

A list of cubeviewports.

Definition at line 205 of file Tool.h.

Member Enumeration Documentation

◆ StretchBand

Enum to store the bands.

Enumerator
Gray 

Gray Band.

Red 

Red Band.

Green 

Green Band.

Blue 

Blue Band.

All 

All Bands.

Definition at line 96 of file StretchTool.h.

Constructor & Destructor Documentation

◆ StretchTool()

◆ ~StretchTool()

Isis::StretchTool::~StretchTool ( )

Destructor.

Definition at line 94 of file StretchTool.cpp.

References m_chipViewportStretch, and m_preGlobalStretches.

Member Function Documentation

◆ activate

◆ addConnections()

virtual void Isis::Tool::addConnections ( MdiCubeViewport * cvp)
inlineprotectedvirtualinherited

Anytime a tool is created, you must add the connections for it.

Parameters
cvp

Reimplemented in Isis::TrackTool, and Isis::WindowTool.

Definition at line 239 of file Tool.h.

Referenced by Isis::Tool::addViewportConnections().

◆ addTo() [1/4]

void Isis::StretchTool::addTo ( QMenu * menu)
virtual

Adds the stretch action to the given menu.

Parameters
menu

Reimplemented from Isis::Tool.

Definition at line 131 of file StretchTool.cpp.

References m_stretchGlobal, and m_stretchRegional.

◆ addTo() [2/4]

void Isis::Tool::addTo ( ToolPad * toolpad)
inherited

Adds the tool to the toolpad.

Parameters
toolpad

Definition at line 98 of file Tool.cpp.

References Isis::Tool::activate(), Isis::Tool::m_toolPadAction, and Isis::Tool::toolPadAction().

◆ addTo() [3/4]

◆ addTo() [4/4]

void Isis::Tool::addTo ( Workspace * ws)
virtualinherited

Adds the given workspace to the cubeviewport list.

Parameters
ws

Reimplemented in Isis::EditTool, Isis::FileTool, Isis::SpecialPixelTool, and Isis::WindowTool.

Definition at line 45 of file Tool.cpp.

References Isis::Tool::registerTool(), and Isis::Tool::setCubeViewport().

◆ addToActive()

void Isis::Tool::addToActive ( QToolBar * toolbar)
inherited
Parameters
toolbar

Definition at line 112 of file Tool.cpp.

References Isis::Tool::createToolBarWidget(), Isis::Tool::disableToolBar(), and Isis::Tool::m_toolBarWidget.

Referenced by Isis::Tool::addTo().

◆ addToPermanent()

virtual void Isis::Tool::addToPermanent ( QToolBar * toolbar)
inlinevirtualinherited
Parameters
toolbar

Reimplemented in Isis::AdvancedTrackTool, Isis::BlinkTool, Isis::FileTool, Isis::HelpTool, Isis::SpecialPixelTool, and Isis::WindowTool.

Definition at line 97 of file Tool.h.

Referenced by Isis::Tool::addTo().

◆ addViewportConnections()

◆ advancedStretchChanged

◆ changeStretch

void Isis::StretchTool::changeStretch ( )
privateslot

This method is called when the stretch has changed and sets the min/max text fields to the correct values.

Does not effect All as the min/max lineedits are hidden for this option

Definition at line 1034 of file StretchTool.cpp.

References Isis::Stretch::AddPair(), Blue, Isis::Stretch::ClearPairs(), Isis::Tool::cubeViewport(), Green, m_chipViewportStretch, m_stretchBand, m_stretchMaxEdit, m_stretchMinEdit, Red, stretchChanged(), stretchChipViewport(), and updateTool().

Referenced by createToolBarWidget().

◆ createToolBarWidget()

◆ cubeViewport()

MdiCubeViewport * Isis::Tool::cubeViewport ( ) const
inlineprotectedinherited

Return the current cubeviewport.

Returns
CubeViewport*

Definition at line 197 of file Tool.h.

References Isis::Tool::m_cvp.

Referenced by Isis::TrackTool::addConnections(), Isis::WindowTool::addConnections(), advancedStretchChanged(), Isis::FindTool::centerLinkedViewports(), changeStretch(), Isis::BandTool::changeView(), Isis::BandTool::copyLinkedViewports(), deleteFromCube(), Isis::FileTool::discard(), Isis::Tool::enableToolBar(), Isis::FileTool::exportToList(), Isis::FileTool::exportView(), Isis::StatisticsTool::getStatistics(), Isis::FindTool::handleRecordClicked(), Isis::EditTool::LineToPoints(), loadStretchFromCube(), Isis::TrackTool::locateCursor(), Isis::SunShadowTool::mouseButtonPress(), Isis::EditTool::mouseButtonRelease(), Isis::ControlNetTool::mouseButtonRelease(), Isis::FeatureNomenclatureTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::MatchTool::mouseButtonRelease(), Isis::QnetTool::mouseButtonRelease(), Isis::RubberBandTool::mouseButtonRelease(), mouseButtonRelease(), Isis::AdvancedTrackTool::mouseLeave(), Isis::SunShadowTool::mouseMove(), Isis::TrackTool::mouseMove(), Isis::RubberBandTool::mouseMove(), Isis::ScatterPlotTool::mouseMove(), Isis::LatLonGridTool::paintViewport(), Isis::FindTool::paintViewport(), Isis::RubberBandTool::paintViewport(), Isis::SunShadowTool::paintViewport(), Isis::FileTool::print(), Isis::SunShadowTool::recalculateShadowHeight(), Isis::EditTool::redoEdit(), Isis::FindTool::refresh(), Isis::HistogramTool::refreshPlot(), Isis::SpatialPlotTool::refreshPlot(), Isis::SpectralPlotTool::refreshPlot(), Isis::TrackTool::removeConnections(), Isis::WindowTool::removeConnections(), Isis::RubberBandTool::repaint(), Isis::WindowTool::resizeWindows(), Isis::EditTool::rubberBandComplete(), Isis::HistogramTool::rubberBandComplete(), Isis::MeasureTool::rubberBandComplete(), rubberBandComplete(), Isis::ZoomTool::rubberBandComplete(), Isis::FileTool::save(), Isis::FileTool::saveAs(), Isis::FileTool::saveAsCubeByOption(), Isis::FileTool::saveAsReducedCube(), Isis::FileTool::saveInfo(), saveStretchToCube(), Isis::BandTool::setBandBin(), Isis::BandTool::setList(), setStretchAcrossBands(), setStretchAllViewports(), showAdvancedDialog(), Isis::ScatterPlotTool::showNewScatterPlotConfig(), stretchChanged(), stretchGlobal(), stretchGlobalAllBands(), stretchRegional(), Isis::EditTool::undoEdit(), updateAdvStretchDialogforAll(), updateHistograms(), Isis::TrackTool::updateLabels(), Isis::MeasureTool::updateMeasure(), Isis::AdvancedTrackTool::updateRow(), Isis::AdvancedTrackTool::updateRow(), Isis::AbstractPlotTool::updateTool(), Isis::BandTool::updateTool(), Isis::BlinkTool::updateTool(), Isis::EditTool::updateTool(), Isis::FileTool::updateTool(), Isis::FindTool::updateTool(), Isis::LatLonGridTool::updateTool(), Isis::SpecialPixelTool::updateTool(), updateTool(), Isis::SunShadowTool::updateTool(), Isis::WindowTool::updateTool(), Isis::ZoomTool::updateTool(), Isis::AbstractPlotTool::viewportsToPlot(), Isis::EditTool::writeToCube(), Isis::ZoomTool::zoomBy(), Isis::ZoomTool::zoomFit(), Isis::ZoomTool::zoomFitHeight(), Isis::ZoomTool::zoomFitWidth(), and Isis::ZoomTool::zoomManual().

◆ cubeViewportList()

Tool::CubeViewportList * Isis::Tool::cubeViewportList ( ) const
protectedinherited

Return the list of cubeviewports.

Returns
CubeViewportList*

Definition at line 390 of file Tool.cpp.

References Isis::Workspace::cubeViewportList().

Referenced by Isis::BlinkTool::advance(), Isis::SpecialPixelTool::apply(), Isis::FindTool::centerLinkedViewports(), Isis::WindowTool::changeCursor(), Isis::FileTool::closeAll(), Isis::BandTool::copyAllViewports(), Isis::BandTool::copyLinkedViewports(), Isis::MatchTool::createPoint(), Isis::BlinkTool::eventFilter(), Isis::FeatureNomenclatureTool::featuresIdentified(), Isis::FeatureNomenclatureTool::findMissingNomenclature(), Isis::FeatureNomenclatureTool::findNomenclatureStateChanged(), Isis::FindTool::handleLinkClicked(), Isis::WindowTool::linkWindows(), Isis::RubberBandTool::mouseButtonRelease(), Isis::RubberBandTool::mouseMove(), Isis::QnetTool::openGround(), Isis::ControlNetTool::paintAllViewports(), Isis::MatchTool::paintAllViewports(), Isis::StereoTool::paintAllViewports(), Isis::QnetTool::paintAllViewports(), Isis::FindTool::refresh(), Isis::AbstractPlotTool::repaintViewports(), Isis::ScatterPlotTool::repaintViewports(), Isis::AbstractPlotTool::repaintViewports(), Isis::WindowTool::resizeWindows(), Isis::BlinkTool::reverse(), Isis::ZoomTool::rubberBandComplete(), Isis::MatchTool::serialNumberList(), Isis::ControlNetTool::setControlNet(), Isis::FeatureNomenclatureTool::setFontColor(), Isis::FeatureNomenclatureTool::setFontSize(), Isis::FeatureNomenclatureTool::setShowApprovedOnly(), setStretchAllViewports(), Isis::FeatureNomenclatureTool::setVectorType(), stretchGlobalAllViewports(), Isis::BlinkTool::toggleLink(), Isis::WindowTool::unlinkWindows(), Isis::MeasureTool::updateMeasure(), Isis::AdvancedTrackTool::updateRow(), Isis::BlinkTool::updateTool(), Isis::FindTool::updateTool(), Isis::WindowTool::updateTool(), Isis::AbstractPlotTool::viewportsToPlot(), Isis::ZoomTool::zoomBy(), Isis::ZoomTool::zoomFit(), Isis::ZoomTool::zoomFitHeight(), Isis::ZoomTool::zoomFitWidth(), and Isis::ZoomTool::zoomManual().

◆ deleteFromCube

void Isis::StretchTool::deleteFromCube ( )
protectedslot

Deletes a saved stretch from the cube.

Definition at line 527 of file StretchTool.cpp.

References Isis::Tool::cubeViewport().

Referenced by createToolBarWidget(), and StretchTool().

◆ disableToolBar()

void Isis::Tool::disableToolBar ( )
privateinherited

Disables entire tool bar.

Definition at line 285 of file Tool.cpp.

References Isis::Tool::m_toolBarWidget.

Referenced by Isis::Tool::activate(), and Isis::Tool::addToActive().

◆ enableRubberBandTool

void Isis::StretchTool::enableRubberBandTool ( )
protectedslot

This method enables the RubberBandTool.

Definition at line 1282 of file StretchTool.cpp.

References Isis::RubberBandTool::enable(), and Isis::RubberBandTool::setDrawActiveViewportOnly().

Referenced by mouseButtonRelease().

◆ enableToolBar()

void Isis::Tool::enableToolBar ( )
privateinherited

Enables entire tool bar.

Definition at line 297 of file Tool.cpp.

References Isis::Tool::cubeViewport(), Isis::Tool::m_toolBarWidget, and Isis::Tool::updateTool().

Referenced by Isis::Tool::activate(), and Isis::Tool::setCubeViewport().

◆ histFromBuffer() [1/2]

Histogram Isis::StretchTool::histFromBuffer ( ViewportBuffer * buffer)
static

Given a viewport buffer, this calculates a histogram.

Parameters
buffer
Returns
Histogram

Definition at line 1541 of file StretchTool.cpp.

References Isis::ViewportBuffer::bufferXYRect(), histFromBuffer(), and statsFromBuffer().

Referenced by histFromBuffer(), setCubeViewport(), stretchBuffer(), updateAdvStretchDialogforAll(), and updateHistograms().

◆ histFromBuffer() [2/2]

Histogram Isis::StretchTool::histFromBuffer ( ViewportBuffer * buffer,
QRect rect,
double min,
double max )
static

This method will calculate and return the histogram for a given region and viewport buffer.

Parameters
buffer
rect
min
max
Returns
Histogram

Definition at line 1560 of file StretchTool.cpp.

References Isis::ViewportBuffer::bufferXYRect(), Isis::ViewportBuffer::getLine(), and Isis::IException::Unknown.

◆ histFromCube()

Histogram Isis::StretchTool::histFromCube ( Cube * cube,
int band,
double min,
double max )
static

This method will calculate and return the histogram for a given cube and band.

Parameters
cube
band
min
max
Returns
Histogram

Definition at line 1519 of file StretchTool.cpp.

References Isis::Cube::lineCount(), Isis::Cube::pixelType(), Isis::Cube::read(), and Isis::Cube::sampleCount().

Referenced by stretchBand().

◆ loadStretchFromCube

void Isis::StretchTool::loadStretchFromCube ( )
protectedslot

◆ menuName()

QString Isis::StretchTool::menuName ( ) const
inlinevirtual

This let's Tool know which Menu the actions this class has should be added to.

Removal of this results in "Ctrl+R" and "Ctrl+G" not working.

Returns
Name of the Menu

Reimplemented from Isis::Tool.

Definition at line 123 of file StretchTool.h.

◆ mouseButtonPress()

void Isis::Tool::mouseButtonPress ( QPoint p,
Qt::MouseButton s )
protectedvirtualinherited
Parameters
p
s

Definition at line 367 of file Tool.cpp.

Referenced by Isis::Tool::addViewportConnections(), and Isis::Tool::removeViewportConnections().

◆ mouseButtonRelease

void Isis::StretchTool::mouseButtonRelease ( QPoint start,
Qt::MouseButton s )
protectedslot

This method will call a global stretch if the right mouse button is released.

Parameters
start
s

Definition at line 1258 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), enableRubberBandTool(), Isis::Tool::mouseButtonRelease(), stretchChipViewport(), and stretchGlobal().

◆ mouseDoubleClick()

void Isis::Tool::mouseDoubleClick ( QPoint p)
protectedvirtualinherited
Parameters
p

Definition at line 358 of file Tool.cpp.

Referenced by Isis::Tool::addViewportConnections(), and Isis::Tool::removeViewportConnections().

◆ mouseEnter

virtual void Isis::Tool::mouseEnter ( )
inlineprotectedvirtualslotinherited

Definition at line 152 of file Tool.h.

◆ mouseLeave

virtual void Isis::Tool::mouseLeave ( )
inlineprotectedvirtualslotinherited

Definition at line 159 of file Tool.h.

◆ mouseMove [1/2]

void Isis::Tool::mouseMove ( QPoint p)
protectedvirtualslotinherited
Parameters
p

Definition at line 352 of file Tool.cpp.

Referenced by Isis::Tool::addViewportConnections(), and Isis::Tool::removeViewportConnections().

◆ mouseMove [2/2]

virtual void Isis::Tool::mouseMove ( QPoint p,
Qt::MouseButton  )
inlineprotectedvirtualslotinherited

Definition at line 155 of file Tool.h.

◆ paintViewport()

virtual void Isis::Tool::paintViewport ( MdiCubeViewport * vp,
QPainter * painter )
inlinevirtualinherited

◆ registerTool()

void Isis::Tool::registerTool ( MdiCubeViewport * viewport)
protectedinherited

Registers the tool to the viewport.

Parameters
viewport

Definition at line 327 of file Tool.cpp.

References Isis::Tool::m_cvp, and Isis::MdiCubeViewport::registerTool().

Referenced by Isis::Tool::addTo().

◆ removeConnections()

virtual void Isis::Tool::removeConnections ( MdiCubeViewport * cvp)
inlineprotectedvirtualinherited

Anytime a tool is created, you must be able to remove it's connections.

Parameters
cvp

Reimplemented in Isis::MeasureTool, Isis::TrackTool, and Isis::WindowTool.

Definition at line 247 of file Tool.h.

Referenced by Isis::Tool::removeViewportConnections().

◆ removeViewportConnections()

void Isis::Tool::removeViewportConnections ( )
privateinherited

◆ rubberBandComplete

void Isis::StretchTool::rubberBandComplete ( )
protectedslot

This method is called when the RubberBandTool is complete.

It will get a rectangle from the RubberBandTool and stretch accordingly.

Definition at line 1189 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), Isis::RubberBandTool::rectangle(), and stretchRect().

◆ rubberBandTool()

RubberBandTool * Isis::Tool::rubberBandTool ( )
inherited

Definition at line 57 of file Tool.cpp.

◆ saveStretchToCube

◆ scaleChanged()

virtual void Isis::Tool::scaleChanged ( )
inlineprotectedvirtualinherited

Definition at line 172 of file Tool.h.

◆ screenPixelsChanged

void Isis::StretchTool::screenPixelsChanged ( )
protectedslot

This is called when the visible area changes.

Definition at line 747 of file StretchTool.cpp.

References updateHistograms().

Referenced by stretchRequested().

◆ setCubeViewport [1/2]

void Isis::StretchTool::setCubeViewport ( CubeViewport * cvp)
protectedslot

This updates the advanced stretch to use the given viewport.

Parameters
cvp

Definition at line 757 of file StretchTool.cpp.

References Isis::AdvancedStretchDialog::enable(), Isis::AdvancedStretchDialog::enableGrayMode(), Isis::AdvancedStretchDialog::enableRgbMode(), histFromBuffer(), and m_advancedStretch.

Referenced by updateTool().

◆ setCubeViewport [2/2]

void Isis::Tool::setCubeViewport ( MdiCubeViewport * cvp)
slotinherited

◆ setList()

void Isis::Tool::setList ( ToolList * currentList)
inherited

Definition at line 68 of file Tool.cpp.

◆ setStretchAcrossBands

void Isis::StretchTool::setStretchAcrossBands ( )
privateslot

Sets the stretch for all the bands in the active viewport to the current stretch.

Definition at line 1293 of file StretchTool.cpp.

References Isis::Stretch::AddPair(), Blue, Isis::Stretch::ClearPairs(), Isis::Tool::cubeViewport(), Green, m_stretchBand, m_stretchMaxEdit, m_stretchMinEdit, and Red.

Referenced by createToolBarWidget().

◆ setStretchAllViewports

void Isis::StretchTool::setStretchAllViewports ( )
privateslot

Sets the stretch for all the viewports to the current stretch in the active viewport.

Definition at line 1344 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), Isis::Tool::cubeViewportList(), and stretchChanged().

Referenced by createToolBarWidget().

◆ showAdvancedDialog

void Isis::StretchTool::showAdvancedDialog ( )
privateslot

This methods shows and updates the advanced dialog.

Definition at line 1096 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), m_advancedStretch, Isis::AdvancedStretchDialog::updateStretch(), and updateTool().

Referenced by createToolBarWidget().

◆ statsFromBuffer()

Statistics Isis::StretchTool::statsFromBuffer ( ViewportBuffer * buffer,
QRect rect )
static

This method will calculate and return the statistics for a given region and viewport buffer.

Parameters
buffer
rect
Returns
Statistics

Definition at line 1484 of file StretchTool.cpp.

References Isis::ViewportBuffer::bufferXYRect(), Isis::ViewportBuffer::getLine(), Isis::IException::User, and Isis::ViewportBuffer::working().

Referenced by histFromBuffer(), and stretchBuffer().

◆ statsFromCube()

Statistics Isis::StretchTool::statsFromCube ( Cube * cube,
int band )
static

This method will calculate and return the statistics for a given cube and band.

Parameters
cube
band
Returns
Statistics

Definition at line 1461 of file StretchTool.cpp.

References Isis::Cube::lineCount(), Isis::Cube::pixelType(), Isis::Cube::read(), and Isis::Cube::sampleCount().

Referenced by stretchBand().

◆ stretchBand()

Stretch Isis::StretchTool::stretchBand ( CubeViewport * cvp,
StretchBand band )
static

This method computes the stretch over the entire cube.

Parameters
cvp
bandBand to stretch

Definition at line 1418 of file StretchTool.cpp.

References Isis::Stretch::AddPair(), Blue, Isis::Stretch::ClearPairs(), Green, histFromCube(), Red, and statsFromCube().

Referenced by stretchRequested().

◆ stretchBandChanged

void Isis::StretchTool::stretchBandChanged ( int )
privateslot

The selected band for stretching changed.

Definition at line 1593 of file StretchTool.cpp.

References All, m_stretchBand, m_stretchBandComboBox, m_stretchMaxEdit, m_stretchMinEdit, stretchChanged(), and Isis::toInt().

Referenced by createToolBarWidget(), and updateTool().

◆ stretchBuffer()

Stretch Isis::StretchTool::stretchBuffer ( ViewportBuffer * buffer,
QRect rect )
static

This method computes the stretch over a region using the viewport buffer.

Parameters
buffer
rect

Definition at line 1388 of file StretchTool.cpp.

References Isis::Stretch::AddPair(), histFromBuffer(), Isis::Stretch::Pairs(), and statsFromBuffer().

Referenced by stretchRect(), and stretchRequested().

◆ stretchChanged

◆ stretchChipViewport

void Isis::StretchTool::stretchChipViewport ( Stretch * ,
CubeViewport *  )
signal

when a viewport is stretched, send the stretch and the viewport associated with it to any ChipViewport's that might be listening

Referenced by advancedStretchChanged(), changeStretch(), mouseButtonRelease(), and stretchRect().

◆ stretchGlobal [1/2]

void Isis::StretchTool::stretchGlobal ( )
slot

Does a global stretch for the active viewport.

Definition at line 1111 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), and stretchGlobal().

Referenced by createToolBarWidget(), mouseButtonRelease(), stretchGlobal(), stretchGlobalAllBands(), stretchGlobalAllViewports(), and StretchTool().

◆ stretchGlobal [2/2]

void Isis::StretchTool::stretchGlobal ( CubeViewport * cvp)
slot

Does a global stretch for the specified viewport.

Definition at line 1135 of file StretchTool.cpp.

References stretchChanged().

◆ stretchGlobalAllBands

void Isis::StretchTool::stretchGlobalAllBands ( )
slot

This resets the stretch across all bands.

Definition at line 1122 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), and stretchGlobal().

Referenced by createToolBarWidget().

◆ stretchGlobalAllViewports

void Isis::StretchTool::stretchGlobalAllViewports ( )
slot

Does a global stretch for all the viewports.

Definition at line 1145 of file StretchTool.cpp.

References Isis::Tool::cubeViewportList(), and stretchGlobal().

Referenced by createToolBarWidget().

◆ stretchRect()

void Isis::StretchTool::stretchRect ( CubeViewport * cvp,
QRect rect )
private

stretch the specified CubeViewport with the given rect

Parameters
cvpThe CubeViewport to stretch
rectThe rect with which to stretch the CubeViewport

Definition at line 1208 of file StretchTool.cpp.

References All, Blue, Isis::Stretch::ClearPairs(), Green, m_chipViewportStretch, m_stretchBand, Isis::IException::Programmer, Red, stretchBuffer(), stretchChanged(), and stretchChipViewport().

Referenced by rubberBandComplete(), and stretchRegional().

◆ stretchRegional [1/2]

void Isis::StretchTool::stretchRegional ( )
slot

Does a regional stretch for the active viewport.

Definition at line 1158 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), and stretchRegional().

Referenced by createToolBarWidget(), stretchRegional(), and StretchTool().

◆ stretchRegional [2/2]

void Isis::StretchTool::stretchRegional ( CubeViewport * cvp)
slot

Does a regional stretch for the specified viewport.

Definition at line 1169 of file StretchTool.cpp.

References stretchRect().

◆ stretchRequested()

void Isis::StretchTool::stretchRequested ( MdiCubeViewport * cvp,
int bandId )
protectedvirtual

The cube viewport requested a stretch at this time, give it to the viewport.

Parameters
cvp
bandId

Reimplemented from Isis::Tool.

Definition at line 848 of file StretchTool.cpp.

References All, Blue, Isis::Stretch::CopyPairs(), Gray, Green, Red, screenPixelsChanged(), stretchBand(), stretchBuffer(), stretchChanged(), and updateHistograms().

◆ toolIconDir()

◆ toolPadAction()

QAction * Isis::StretchTool::toolPadAction ( ToolPad * pad)
protectedvirtual

Adds the stretch action to the toolpad.

Parameters
pad
Returns
QAction*

Reimplemented from Isis::Tool.

Definition at line 111 of file StretchTool.cpp.

References Isis::Tool::toolIconDir().

◆ updateAdvStretchDialogforAll()

void Isis::StretchTool::updateAdvStretchDialogforAll ( void )

Update the streches and corresponding histograms for all the colors Red, Green and Blue for Stretch All Mode.

Author
Sharmila Prasad (3/14/2011)

Definition at line 379 of file StretchTool.cpp.

References Isis::Tool::cubeViewport(), histFromBuffer(), m_advancedStretch, and Isis::AdvancedStretchDialog::updateForRGBMode().

Referenced by stretchChanged().

◆ updateHistograms

void Isis::StretchTool::updateHistograms ( )
protectedslot

◆ updateMeasure()

virtual void Isis::Tool::updateMeasure ( )
inlineprotectedvirtualinherited

Definition at line 167 of file Tool.h.

◆ updateTool()

◆ warningSignal

void Isis::StretchTool::warningSignal ( std::string & pStr,
const std::string pExStr )
signal

Shows a warning.

This sends a signal (meant for when an exception occurs) to display the error using the warning object

Parameters
pStr
pExStr

Referenced by StretchTool().

◆ workspace()

Workspace * Isis::Tool::workspace ( )
protectedinherited

Definition at line 344 of file Tool.cpp.

Member Data Documentation

◆ m_active

bool Isis::Tool::m_active
privateinherited

Is the tool acitve?

Definition at line 264 of file Tool.h.

Referenced by Isis::Tool::activate(), Isis::Tool::setCubeViewport(), and Isis::Tool::Tool().

◆ m_advancedStretch

◆ m_chipViewportStretch

Stretch* Isis::StretchTool::m_chipViewportStretch
private

◆ m_copyBands

QAction* Isis::StretchTool::m_copyBands
private

Copy band stretch action.

Definition at line 192 of file StretchTool.h.

Referenced by createToolBarWidget(), and updateTool().

◆ m_copyButton

QToolButton* Isis::StretchTool::m_copyButton
private

Copy Button.

Definition at line 184 of file StretchTool.h.

Referenced by createToolBarWidget().

◆ m_cvp

◆ m_flashButton

QPushButton* Isis::StretchTool::m_flashButton
private

Button to press for global stretch.

Definition at line 187 of file StretchTool.h.

Referenced by createToolBarWidget(), and stretchChanged().

◆ m_globalButton

QToolButton* Isis::StretchTool::m_globalButton
private

Global Button.

Definition at line 185 of file StretchTool.h.

Referenced by createToolBarWidget().

◆ m_preGlobalStretches

Stretch* Isis::StretchTool::m_preGlobalStretches
private

Stretches before global button pressed.

Definition at line 202 of file StretchTool.h.

Referenced by stretchChanged(), StretchTool(), and ~StretchTool().

◆ m_stretchBand

StretchBand Isis::StretchTool::m_stretchBand
private

Current stretch band.

Definition at line 199 of file StretchTool.h.

Referenced by changeStretch(), createToolBarWidget(), setStretchAcrossBands(), stretchBandChanged(), stretchChanged(), and stretchRect().

◆ m_stretchBandComboBox

QComboBox* Isis::StretchTool::m_stretchBandComboBox
private

Stretch combo box.

Definition at line 194 of file StretchTool.h.

Referenced by createToolBarWidget(), stretchBandChanged(), and updateTool().

◆ m_stretchGlobal

QAction* Isis::StretchTool::m_stretchGlobal
private

Global stretch action.

Definition at line 189 of file StretchTool.h.

Referenced by addTo(), and StretchTool().

◆ m_stretchManual

QAction* Isis::StretchTool::m_stretchManual
private

Manual stretch action.

Definition at line 191 of file StretchTool.h.

◆ m_stretchMaxEdit

QLineEdit* Isis::StretchTool::m_stretchMaxEdit
private

◆ m_stretchMinEdit

QLineEdit* Isis::StretchTool::m_stretchMinEdit
private

◆ m_stretchRegional

QAction* Isis::StretchTool::m_stretchRegional
private

Regional stretch action.

Definition at line 190 of file StretchTool.h.

Referenced by addTo(), and StretchTool().

◆ m_stretchRegionalButton

QToolButton* Isis::StretchTool::m_stretchRegionalButton
private

Regional Stretch Button.

Definition at line 186 of file StretchTool.h.

Referenced by createToolBarWidget().

◆ m_toolBarWidget

QWidget* Isis::Tool::m_toolBarWidget
privateinherited

The tool bar on which this tool resides.

Definition at line 265 of file Tool.h.

Referenced by Isis::Tool::addToActive(), Isis::Tool::disableToolBar(), Isis::Tool::enableToolBar(), and Isis::Tool::Tool().

◆ m_toolIconDir

QString Isis::Tool::m_toolIconDir
privateinherited

The pathway to the icon directory.

Definition at line 267 of file Tool.h.

Referenced by Isis::Tool::Tool(), and Isis::Tool::toolIconDir().

◆ m_toolList

ToolList* Isis::Tool::m_toolList
privateinherited

Definition at line 268 of file Tool.h.

◆ m_toolPadAction

QAction* Isis::Tool::m_toolPadAction
privateinherited

The tool pad on which this tool resides.

Definition at line 266 of file Tool.h.

Referenced by Isis::Tool::activate(), Isis::Tool::addTo(), Isis::Tool::addViewportConnections(), and Isis::Tool::Tool().

◆ m_workspace

Workspace* Isis::Tool::m_workspace
privateinherited

Definition at line 262 of file Tool.h.


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