Isis Developer Reference
|
Stretch image edit tool. More...
#include <StretchTool.h>
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) |
RubberBandTool * | rubberBandTool () |
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 | |
QAction * | toolPadAction (ToolPad *pad) |
Adds the stretch action to the toolpad. | |
QWidget * | createToolBarWidget (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. | |
MdiCubeViewport * | cubeViewport () const |
Return the current cubeviewport. | |
CubeViewportList * | cubeViewportList () 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. | |
Workspace * | workspace () |
Stretch image edit tool.
This tool is part of the Qisis namespace and allows interactive editing of displayed images.
|
protectedinherited |
A list of cubeviewports.
Isis::StretchTool::StretchTool | ( | QWidget * | parent | ) |
StretchTool constructor.
parent |
References deleteFromCube(), loadStretchFromCube(), saveStretchToCube(), stretchGlobal(), stretchRegional(), updateTool(), and warningSignal().
Isis::StretchTool::~StretchTool | ( | ) |
Destructor.
|
slotinherited |
Activates the tool.
on |
References Isis::Tool::clearWarningSignal(), and Isis::Tool::toolActivated().
Referenced by Isis::Tool::addTo(), Isis::AdvancedTrackTool::AdvancedTrackTool(), Isis::RubberBandTool::disable(), Isis::RubberBandTool::enable(), Isis::AdvancedTrackTool::eventFilter(), Isis::FileTool::FileTool(), Isis::RubberBandTool::RubberBandTool(), Isis::TrackTool::TrackTool(), and Isis::WindowTool::WindowTool().
|
inlineprotectedvirtualinherited |
Anytime a tool is created, you must add the connections for it.
cvp |
Reimplemented in Isis::TrackTool, and Isis::WindowTool.
|
virtual |
|
inherited |
Adds the tool to the toolpad.
toolpad |
References Isis::Tool::activate(), and Isis::Tool::toolPadAction().
|
inherited |
Adds the tool to the application.
pViewPortMnWin |
References Isis::Tool::addTo(), Isis::Tool::addToActive(), Isis::Tool::addToPermanent(), and Isis::Tool::menuName().
Referenced by Isis::Tool::addTo(), Isis::EditTool::addTo(), Isis::FileTool::addTo(), Isis::SpecialPixelTool::addTo(), Isis::WindowTool::addTo(), Isis::ViewportMainWindow::ViewportMainWindow(), and Isis::Workspace::Workspace().
|
virtualinherited |
Adds the given workspace to the cubeviewport list.
ws |
Reimplemented in Isis::EditTool, Isis::FileTool, Isis::SpecialPixelTool, and Isis::WindowTool.
References Isis::Tool::registerTool(), and Isis::Tool::setCubeViewport().
|
inherited |
toolbar |
References Isis::Tool::createToolBarWidget(), and Isis::ToolList::toolBarStack().
Referenced by Isis::Tool::addTo().
|
inlinevirtualinherited |
toolbar |
Reimplemented in Isis::AdvancedTrackTool, Isis::BlinkTool, Isis::FileTool, Isis::HelpTool, Isis::SpecialPixelTool, and Isis::WindowTool.
Referenced by Isis::Tool::addTo().
|
signalinherited |
|
protectedvirtual |
Creates the widget to add to the tool bar.
parent |
Reimplemented from Isis::Tool.
References All, Blue, deleteFromCube(), Green, loadStretchFromCube(), Red, saveStretchToCube(), stretchGlobal(), stretchGlobalAllBands(), stretchGlobalAllViewports(), stretchRegional(), and Isis::Tool::toolIconDir().
|
inlineprotectedinherited |
Return the current cubeviewport.
Referenced by Isis::TrackTool::addConnections(), Isis::WindowTool::addConnections(), deleteFromCube(), Isis::FileTool::discard(), Isis::FileTool::exportToList(), Isis::FileTool::exportView(), loadStretchFromCube(), Isis::SunShadowTool::mouseButtonPress(), Isis::EditTool::mouseButtonRelease(), Isis::ControlNetTool::mouseButtonRelease(), Isis::FeatureNomenclatureTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::MatchTool::mouseButtonRelease(), Isis::PanTool::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::HistogramTool::refreshPlot(), Isis::SpatialPlotTool::refreshPlot(), Isis::SpectralPlotTool::refreshPlot(), Isis::TrackTool::removeConnections(), Isis::WindowTool::removeConnections(), Isis::EditTool::rubberBandComplete(), Isis::HistogramTool::rubberBandComplete(), Isis::MeasureTool::rubberBandComplete(), Isis::StereoTool::rubberBandComplete(), rubberBandComplete(), Isis::ZoomTool::rubberBandComplete(), Isis::FileTool::save(), Isis::FileTool::saveAs(), Isis::FileTool::saveAsCubeByOption(), Isis::FileTool::saveInfo(), saveStretchToCube(), Isis::ScatterPlotTool::showNewScatterPlotConfig(), stretchGlobal(), stretchGlobalAllBands(), stretchRegional(), updateAdvStretchDialogforAll(), updateHistograms(), Isis::MeasureTool::updateMeasure(), 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(), and Isis::AbstractPlotTool::viewportsToPlot().
|
protectedinherited |
Return the list of cubeviewports.
References Isis::Workspace::cubeViewportList().
Referenced by Isis::FileTool::closeAll(), Isis::MatchTool::createPoint(), Isis::BlinkTool::eventFilter(), Isis::PanTool::mouseButtonRelease(), Isis::RubberBandTool::mouseButtonRelease(), Isis::RubberBandTool::mouseMove(), Isis::AbstractPlotTool::repaintViewports(), Isis::ScatterPlotTool::repaintViewports(), Isis::AbstractPlotTool::repaintViewports(), Isis::ZoomTool::rubberBandComplete(), Isis::ControlNetTool::setControlNet(), Isis::FeatureNomenclatureTool::setFontColor(), Isis::FeatureNomenclatureTool::setFontSize(), Isis::FeatureNomenclatureTool::setShowApprovedOnly(), Isis::FeatureNomenclatureTool::setVectorType(), stretchGlobalAllViewports(), Isis::MeasureTool::updateMeasure(), Isis::BlinkTool::updateTool(), Isis::FindTool::updateTool(), Isis::WindowTool::updateTool(), and Isis::AbstractPlotTool::viewportsToPlot().
|
protectedslot |
Deletes a saved stretch from the cube.
References Isis::Tool::cubeViewport().
Referenced by createToolBarWidget(), and StretchTool().
|
protectedslot |
This method enables the RubberBandTool.
References Isis::RubberBandTool::enable(), Isis::RubberBandTool::RectangleMode, Isis::Tool::rubberBandTool(), and Isis::RubberBandTool::setDrawActiveViewportOnly().
Referenced by mouseButtonRelease().
|
static |
Given a viewport buffer, this calculates a histogram.
buffer |
References Isis::ViewportBuffer::bufferXYRect(), histFromBuffer(), and statsFromBuffer().
Referenced by histFromBuffer(), setCubeViewport(), stretchBuffer(), updateAdvStretchDialogforAll(), and updateHistograms().
|
static |
This method will calculate and return the histogram for a given region and viewport buffer.
buffer | |
rect | |
min | |
max |
References _FILEINFO_, Isis::ViewportBuffer::bufferXYRect(), Isis::ViewportBuffer::getLine(), and Isis::IException::Unknown.
This method will calculate and return the histogram for a given cube and band.
cube | |
band | |
min | |
max |
References Isis::Cube::lineCount(), Isis::Cube::pixelType(), Isis::Cube::read(), and Isis::Cube::sampleCount().
Referenced by stretchBand().
|
protectedslot |
Restores a saved stretch from the cube.
References Isis::Stretch::CopyPairs(), Isis::Tool::cubeViewport(), Isis::AdvancedStretchDialog::restoreGrayStretch(), and Isis::AdvancedStretchDialog::restoreRgbStretch().
Referenced by createToolBarWidget(), and StretchTool().
|
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.
Reimplemented from Isis::Tool.
|
protectedvirtualinherited |
p | |
s |
References Isis::Tool::clearWarningSignal().
|
protectedslot |
This method will call a global stretch if the right mouse button is released.
start | |
s |
References Isis::Tool::cubeViewport(), enableRubberBandTool(), Isis::Tool::mouseButtonRelease(), stretchChipViewport(), and stretchGlobal().
|
protectedvirtualinherited |
p |
References Isis::Tool::clearWarningSignal().
|
inlineprotectedvirtualslotinherited |
|
inlineprotectedvirtualslotinherited |
|
protectedvirtualslotinherited |
p |
|
inlineprotectedvirtualslotinherited |
|
inlinevirtualinherited |
vp | |
painter |
Reimplemented in Isis::ControlNetTool, Isis::QnetTool, Isis::StereoTool, Isis::LatLonGridTool, Isis::MatchTool, Isis::AbstractPlotTool, Isis::FeatureNomenclatureTool, Isis::FindTool, Isis::RubberBandTool, Isis::ScatterPlotTool, and Isis::SunShadowTool.
|
protectedinherited |
Registers the tool to the viewport.
viewport |
References Isis::MdiCubeViewport::registerTool(), and Isis::Tool::stretchRequested().
Referenced by Isis::Tool::addTo().
|
inlineprotectedvirtualinherited |
Anytime a tool is created, you must be able to remove it's connections.
cvp |
Reimplemented in Isis::MeasureTool, Isis::TrackTool, and Isis::WindowTool.
|
protectedslot |
This method is called when the RubberBandTool is complete.
It will get a rectangle from the RubberBandTool and stretch accordingly.
References Isis::Tool::cubeViewport(), Isis::RubberBandTool::rectangle(), and Isis::Tool::rubberBandTool().
|
inherited |
References Isis::ToolList::rubberBandTool().
Referenced by Isis::MeasureTool::createToolBarWidget(), Isis::EditTool::enableRubberBandTool(), Isis::HistogramTool::enableRubberBandTool(), Isis::MeasureTool::enableRubberBandTool(), Isis::SpatialPlotTool::enableRubberBandTool(), Isis::SpectralPlotTool::enableRubberBandTool(), Isis::StereoTool::enableRubberBandTool(), enableRubberBandTool(), Isis::Tool::enableRubberBandTool(), Isis::ZoomTool::enableRubberBandTool(), Isis::HistogramTool::refreshPlot(), Isis::SpatialPlotTool::refreshPlot(), Isis::SpectralPlotTool::refreshPlot(), Isis::RubberBandComboBox::RubberBandComboBox(), Isis::EditTool::rubberBandComplete(), Isis::HistogramTool::rubberBandComplete(), Isis::MeasureTool::rubberBandComplete(), Isis::SpatialPlotTool::rubberBandComplete(), Isis::SpectralPlotTool::rubberBandComplete(), Isis::StereoTool::rubberBandComplete(), rubberBandComplete(), Isis::ZoomTool::rubberBandComplete(), and Isis::RubberBandComboBox::selectionChanged().
|
protectedslot |
Saves a strech to the cube.
References Isis::Tool::cubeViewport(), Isis::AdvancedStretchDialog::getBluStretch(), Isis::AdvancedStretchDialog::getGrayStretch(), Isis::AdvancedStretchDialog::getGrnStretch(), Isis::AdvancedStretchDialog::getRedStretch(), Isis::CubeStretch::setBandNumber(), Isis::CubeStretch::setName(), and Isis::CubeStretch::toBlob().
Referenced by createToolBarWidget(), and StretchTool().
|
inlineprotectedvirtualinherited |
Reimplemented in Isis::RubberBandTool.
|
protectedslot |
This is called when the visible area changes.
References updateHistograms().
Referenced by stretchRequested().
|
protectedslot |
This updates the advanced stretch to use the given viewport.
cvp |
References Isis::AdvancedStretchDialog::enable(), Isis::AdvancedStretchDialog::enableGrayMode(), Isis::AdvancedStretchDialog::enableRgbMode(), and histFromBuffer().
Referenced by updateTool().
|
slotinherited |
Sets the current viewport to the given cvp.
cvp |
References Isis::Tool::updateTool(), and Isis::Tool::viewportChanged().
Referenced by Isis::Tool::addTo(), and Isis::FileTool::closeAll().
|
inherited |
|
static |
This method will calculate and return the statistics for a given region and viewport buffer.
buffer | |
rect |
References _FILEINFO_, Isis::ViewportBuffer::bufferXYRect(), Isis::ViewportBuffer::getLine(), Isis::IException::User, and Isis::ViewportBuffer::working().
Referenced by histFromBuffer(), and stretchBuffer().
|
static |
This method will calculate and return the statistics for a given cube and band.
cube | |
band |
References Isis::Cube::lineCount(), Isis::Cube::pixelType(), Isis::Cube::read(), and Isis::Cube::sampleCount().
Referenced by stretchBand().
|
static |
This method computes the stretch over the entire cube.
cvp | |
band | Band to stretch |
References Isis::Stretch::AddPair(), Blue, Isis::Stretch::ClearPairs(), Green, histFromCube(), Red, and statsFromCube().
Referenced by Isis::IndependentCubeViewport::restretch(), and stretchRequested().
|
static |
This method computes the stretch over a region using the viewport buffer.
buffer | |
rect |
References Isis::Stretch::AddPair(), histFromBuffer(), Isis::Stretch::Pairs(), and statsFromBuffer().
Referenced by stretchRequested().
|
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 mouseButtonRelease().
|
slot |
Does a global stretch for the active viewport.
References Isis::Tool::cubeViewport(), and stretchGlobal().
Referenced by createToolBarWidget(), mouseButtonRelease(), stretchGlobal(), stretchGlobalAllBands(), stretchGlobalAllViewports(), and StretchTool().
|
slot |
Does a global stretch for the specified viewport.
|
slot |
This resets the stretch across all bands.
References Isis::Tool::cubeViewport(), and stretchGlobal().
Referenced by createToolBarWidget().
|
slot |
Does a global stretch for all the viewports.
References Isis::Tool::cubeViewportList(), and stretchGlobal().
Referenced by createToolBarWidget().
|
slot |
Does a regional stretch for the active viewport.
References Isis::Tool::cubeViewport(), and stretchRegional().
Referenced by createToolBarWidget(), stretchRegional(), and StretchTool().
|
slot |
Does a regional stretch for the specified viewport.
|
protectedvirtual |
The cube viewport requested a stretch at this time, give it to the viewport.
cvp | |
bandId |
Reimplemented from Isis::Tool.
References All, Blue, Isis::Stretch::CopyPairs(), Gray, Green, Red, screenPixelsChanged(), stretchBand(), stretchBuffer(), and updateHistograms().
|
signalinherited |
|
inlineinherited |
returns the path to the icon directory.
Referenced by Isis::AdvancedTrackTool::AdvancedTrackTool(), Isis::BlinkTool::BlinkTool(), Isis::BandTool::createToolBarWidget(), Isis::EditTool::createToolBarWidget(), Isis::FindTool::createToolBarWidget(), Isis::MatchTool::createToolBarWidget(), Isis::PanTool::createToolBarWidget(), Isis::StereoTool::createToolBarWidget(), createToolBarWidget(), Isis::ZoomTool::createToolBarWidget(), Isis::FileTool::FileTool(), Isis::FindTool::FindTool(), Isis::HelpTool::HelpTool(), Isis::HistogramTool::HistogramTool(), Isis::PanTool::PanTool(), Isis::SpecialPixelTool::SpecialPixelTool(), Isis::RubberBandComboBox::toolIconDir(), Isis::BandTool::toolPadAction(), Isis::ControlNetTool::toolPadAction(), Isis::EditTool::toolPadAction(), Isis::FeatureNomenclatureTool::toolPadAction(), Isis::HistogramTool::toolPadAction(), Isis::LatLonGridTool::toolPadAction(), Isis::MatchTool::toolPadAction(), Isis::MeasureTool::toolPadAction(), Isis::PanTool::toolPadAction(), Isis::QnetTool::toolPadAction(), Isis::ScatterPlotTool::toolPadAction(), Isis::SpatialPlotTool::toolPadAction(), Isis::SpectralPlotTool::toolPadAction(), Isis::StereoTool::toolPadAction(), toolPadAction(), Isis::SunShadowTool::toolPadAction(), Isis::FindTool::toolPadAction(), Isis::StatisticsTool::toolPadAction(), Isis::ZoomTool::toolPadAction(), Isis::WindowTool::WindowTool(), and Isis::ZoomTool::ZoomTool().
Adds the stretch action to the toolpad.
pad |
Reimplemented from Isis::Tool.
References Isis::Tool::toolIconDir().
void Isis::StretchTool::updateAdvStretchDialogforAll | ( | void | ) |
Update the streches and corresponding histograms for all the colors Red, Green and Blue for Stretch All Mode.
References Isis::Tool::cubeViewport(), histFromBuffer(), and Isis::AdvancedStretchDialog::updateForRGBMode().
|
protectedslot |
This updates the visible histograms in the advanced stretch, if present.
References Isis::Tool::cubeViewport(), histFromBuffer(), Isis::AdvancedStretchDialog::isRgbMode(), Isis::AdvancedStretchDialog::updateHistogram(), Isis::AdvancedStretchDialog::updateHistograms(), and updateTool().
Referenced by screenPixelsChanged(), stretchRequested(), and updateTool().
|
inlineprotectedvirtualinherited |
|
protectedvirtual |
Updates the stretch tool.
Reimplemented from Isis::Tool.
References Isis::Tool::cubeViewport(), Isis::AdvancedStretchDialog::enabled(), Isis::AdvancedStretchDialog::isRgbMode(), setCubeViewport(), and updateHistograms().
Referenced by StretchTool(), and updateHistograms().
|
signalinherited |
|
signal |
Shows a warning.
This sends a signal (meant for when an exception occurs) to display the error using the warning object
pStr | |
pExStr |
Referenced by StretchTool().
|
protectedinherited |