USGS

Isis 3.0 Developer's Reference (API)

Home

Isis::StretchTool Class Reference

Stretch image edit tool. More...

#include <StretchTool.h>

Inherits Isis::Tool.

List of all members.

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.
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)
 requires the programmer to have this member
virtual void addToPermanent (QToolBar *toolbar)
 requires the programmer to have this member
void addToActive (QToolBar *toolbar)
QString toolIconDir () const
 returns the path to the icon directory.
virtual void paintViewport (MdiCubeViewport *vp, QPainter *painter)
 requires the programmer to have this member

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 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 ()
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.

Protected Member Functions

QString menuName () const
 This let's Tool know which Menu the actions this class has should be added to.
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.
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.

Protected Attributes

MdiCubeViewportp_cvp
 current cubeviewport
Workspacep_workspace

Detailed Description

Stretch image edit tool.

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

Author:
????-??-?? Unknown

Member Typedef Documentation

typedef QVector< MdiCubeViewport * > Isis::Tool::CubeViewportList [protected, inherited]

A list of cubeviewports.


Member Enumeration Documentation

Enum to store the bands.

Enumerator:
Gray 

Gray Band.

Red 

Red Band.

Green 

Green Band.

Blue 

Blue Band.

All 

All Bands.


Constructor & Destructor Documentation

Isis::StretchTool::StretchTool ( QWidget parent  ) 

StretchTool constructor.

Parameters:
parent 

References stretchGlobal(), stretchRegional(), updateTool(), and warningSignal().

Isis::StretchTool::~StretchTool (  ) 

Destructor.


Member Function Documentation

void Tool::activate ( bool  on  )  [slot, inherited]
virtual void Isis::Tool::addConnections ( MdiCubeViewport cvp  )  [inline, protected, virtual, inherited]

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

Parameters:
cvp 

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

void Tool::addTo ( Workspace ws  )  [virtual, inherited]

requires the programmer to have this member

Adds the given workspace to the cubeviewport list.

Parameters:
ws 

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

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

void Tool::addTo ( ToolPad toolpad  )  [inherited]

Adds the tool to the toolpad.

Parameters:
toolpad 

References Isis::Tool::activate(), Isis::ToolPad::addAction(), and Isis::Tool::toolPadAction().

void Tool::addTo ( ViewportMainWindow pViewPortMnWin  )  [inherited]
void Isis::StretchTool::addTo ( QMenu *  menu  )  [virtual]

Adds the stretch action to the given menu.

Parameters:
menu 

Reimplemented from Isis::Tool.

void Tool::addToActive ( QToolBar toolbar  )  [inherited]
Parameters:
toolbar 

References Isis::Tool::createToolBarWidget().

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

virtual void Isis::Tool::addToPermanent ( QToolBar toolbar  )  [inline, virtual, inherited]

requires the programmer to have this member

Parameters:
toolbar 

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

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

void Isis::Tool::clearWarningSignal (  )  [signal, inherited]
QWidget * Isis::StretchTool::createToolBarWidget ( QStackedWidget *  parent  )  [protected, virtual]

Creates the widget to add to the tool bar.

Parameters:
parent 
Returns:
QWidget*

Reimplemented from Isis::Tool.

References All, Blue, Green, Red, stretchGlobal(), stretchGlobalAllBands(), stretchGlobalAllViewports(), stretchRegional(), and Isis::Tool::toolIconDir().

MdiCubeViewport* Isis::Tool::cubeViewport (  )  const [inline, protected, inherited]

Return the current cubeviewport.

Returns:
CubeViewport*

References Isis::Tool::p_cvp.

Referenced by Isis::WindowTool::addConnections(), Isis::TrackTool::addConnections(), Isis::FileTool::discard(), Isis::FileTool::exportView(), Isis::SunShadowTool::mouseButtonPress(), mouseButtonRelease(), Isis::RubberBandTool::mouseButtonRelease(), Isis::PanTool::mouseButtonRelease(), Isis::MatchTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::FeatureNomenclatureTool::mouseButtonRelease(), Isis::EditTool::mouseButtonRelease(), Isis::AdvancedTrackTool::mouseLeave(), Isis::TrackTool::mouseMove(), Isis::SunShadowTool::mouseMove(), Isis::ScatterPlotTool::mouseMove(), Isis::RubberBandTool::mouseMove(), Isis::SunShadowTool::paintViewport(), Isis::RubberBandTool::paintViewport(), Isis::FindTool::paintViewport(), Isis::FileTool::print(), Isis::SpectralPlotTool::refreshPlot(), Isis::SpatialPlotTool::refreshPlot(), Isis::HistogramTool::refreshPlot(), Isis::WindowTool::removeConnections(), Isis::TrackTool::removeConnections(), Isis::ZoomTool::rubberBandComplete(), rubberBandComplete(), Isis::StereoTool::rubberBandComplete(), Isis::HistogramTool::rubberBandComplete(), Isis::EditTool::rubberBandComplete(), Isis::FileTool::save(), Isis::FileTool::saveAs(), Isis::FileTool::saveAsCubeByOption(), Isis::FileTool::saveInfo(), Isis::ScatterPlotTool::showNewScatterPlotConfig(), stretchGlobal(), stretchGlobalAllBands(), stretchRegional(), updateAdvStretchDialogforAll(), updateHistograms(), Isis::MeasureTool::updateMeasure(), Isis::ZoomTool::updateTool(), Isis::WindowTool::updateTool(), Isis::SunShadowTool::updateTool(), updateTool(), Isis::SpecialPixelTool::updateTool(), Isis::FindTool::updateTool(), Isis::FileTool::updateTool(), Isis::EditTool::updateTool(), Isis::BlinkTool::updateTool(), Isis::BandTool::updateTool(), Isis::AbstractPlotTool::updateTool(), and Isis::AbstractPlotTool::viewportsToPlot().

Tool::CubeViewportList * Tool::cubeViewportList (  )  const [protected, inherited]
void Isis::StretchTool::enableRubberBandTool (  )  [protected, virtual, slot]
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

References _FILEINFO_, Isis::Histogram::AddData(), Isis::ViewportBuffer::bufferXYRect(), Isis::ViewportBuffer::getLine(), line, Isis::IException::Unknown, and y.

Histogram Isis::StretchTool::histFromBuffer ( ViewportBuffer buffer  )  [static]
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

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

Referenced by stretchBand().

QString Isis::StretchTool::menuName (  )  const [inline, protected, virtual]

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.

void Tool::mouseButtonPress ( QPoint  p,
Qt::MouseButton  s 
) [protected, virtual, slot, inherited]
Parameters:
p 
s 

Reimplemented in Isis::PanTool, Isis::RubberBandTool, and Isis::SunShadowTool.

References Isis::Tool::clearWarningSignal().

void Isis::StretchTool::mouseButtonRelease ( QPoint  start,
Qt::MouseButton  s 
) [protected, virtual, slot]

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

Parameters:
start 
s 

Reimplemented from Isis::Tool.

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

void Tool::mouseDoubleClick ( QPoint  p  )  [protected, virtual, slot, inherited]
Parameters:
p 

Reimplemented in Isis::RubberBandTool.

References Isis::Tool::clearWarningSignal().

virtual void Isis::Tool::mouseEnter (  )  [inline, protected, virtual, slot, inherited]
virtual void Isis::Tool::mouseLeave (  )  [inline, protected, virtual, slot, inherited]
virtual void Isis::Tool::mouseMove ( QPoint  p,
Qt::MouseButton   
) [inline, protected, virtual, slot, inherited]
void Tool::mouseMove ( QPoint  p  )  [protected, virtual, slot, inherited]
virtual void Isis::Tool::paintViewport ( MdiCubeViewport vp,
QPainter *  painter 
) [inline, virtual, inherited]

requires the programmer to have this member

Parameters:
vp 
painter 

Reimplemented in Isis::AbstractPlotTool, Isis::FeatureNomenclatureTool, Isis::FindTool, Isis::MatchTool, Isis::RubberBandTool, Isis::ScatterPlotTool, Isis::StereoTool, and Isis::SunShadowTool.

void Tool::registerTool ( MdiCubeViewport viewport  )  [protected, slot, inherited]

Registers the tool to the viewport.

Parameters:
viewport 

References Isis::Tool::p_cvp, Isis::MdiCubeViewport::registerTool(), and Isis::Tool::stretchRequested().

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

virtual void Isis::Tool::removeConnections ( MdiCubeViewport cvp  )  [inline, protected, virtual, inherited]

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.

void Isis::StretchTool::rubberBandComplete (  )  [protected, virtual, slot]

This method is called when the RubberBandTool is complete.

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

Reimplemented from Isis::Tool.

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

virtual void Isis::Tool::scaleChanged (  )  [inline, protected, virtual, slot, inherited]

Reimplemented in Isis::RubberBandTool.

void Isis::StretchTool::screenPixelsChanged (  )  [protected, virtual, slot]

This is called when the visible area changes.

Reimplemented from Isis::Tool.

References updateHistograms().

Referenced by stretchRequested().

void Tool::setCubeViewport ( MdiCubeViewport cvp  )  [slot, inherited]

Sets the current viewport to the given cvp.

Parameters:
cvp 

References Isis::Tool::p_cvp, Isis::Tool::updateTool(), and Isis::Tool::viewportChanged().

Referenced by Isis::Tool::addTo(), and Isis::FileTool::closeAll().

void Isis::StretchTool::setCubeViewport ( CubeViewport cvp  )  [protected, slot]
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

References _FILEINFO_, Isis::ViewportBuffer::bufferXYRect(), Isis::ViewportBuffer::getLine(), line, stats, Isis::IException::User, Isis::ViewportBuffer::working(), x, and y.

Referenced by histFromBuffer(), and stretchBuffer().

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

References Isis::Statistics::AddData(), line, Isis::Cube::lineCount(), Isis::Cube::pixelType(), Isis::Cube::read(), Isis::Cube::sampleCount(), and stats.

Referenced by stretchBand().

Stretch Isis::StretchTool::stretchBand ( CubeViewport cvp,
StretchBand  band 
) [static]
Stretch Isis::StretchTool::stretchBuffer ( ViewportBuffer buffer,
QRect  rect 
) [static]
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 mouseButtonRelease().

void Isis::StretchTool::stretchGlobal ( CubeViewport cvp  )  [slot]

Does a global stretch for the specified viewport.

References Isis::CubeViewport::stretchKnownGlobal().

void Isis::StretchTool::stretchGlobal (  )  [slot]

Does a global stretch for the active viewport.

References Isis::Tool::cubeViewport().

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

void Isis::StretchTool::stretchGlobalAllBands (  )  [slot]

This resets the stretch across all bands.

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

Referenced by createToolBarWidget().

void Isis::StretchTool::stretchGlobalAllViewports (  )  [slot]

Does a global stretch for all the viewports.

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

Referenced by createToolBarWidget().

void Isis::StretchTool::stretchRegional ( CubeViewport cvp  )  [slot]

Does a regional stretch for the specified viewport.

void Isis::StretchTool::stretchRegional (  )  [slot]

Does a regional stretch for the active viewport.

References Isis::Tool::cubeViewport().

Referenced by createToolBarWidget(), and StretchTool().

void Isis::StretchTool::stretchRequested ( MdiCubeViewport cvp,
int  bandId 
) [protected, virtual]
void Isis::Tool::toolActivated (  )  [signal, inherited]
QString Isis::Tool::toolIconDir (  )  const [inline, inherited]
QAction * Isis::StretchTool::toolPadAction ( ToolPad pad  )  [protected, virtual]

Adds the stretch action to the toolpad.

Parameters:
pad 
Returns:
QAction*

Reimplemented from Isis::Tool.

References Isis::Tool::toolIconDir().

void Isis::StretchTool::updateAdvStretchDialogforAll ( void   ) 
void Isis::StretchTool::updateHistograms (  )  [protected, slot]
virtual void Isis::Tool::updateMeasure (  )  [inline, protected, virtual, slot, inherited]

Reimplemented in Isis::MeasureTool.

void Isis::StretchTool::updateTool (  )  [protected, virtual]
void Isis::Tool::viewportChanged (  )  [signal, inherited]
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().


Member Data Documentation

MdiCubeViewport* Isis::Tool::p_cvp [protected, inherited]
Workspace* Isis::Tool::p_workspace [protected, inherited]

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