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

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

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 Isis::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 Isis::Tool::addTo ( Workspace ws  )  [virtual, inherited]

Adds the given workspace to the cubeviewport list.

Parameters:
ws 

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

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

void Isis::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 Isis::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 Isis::Tool::addToActive ( QToolBar toolbar  )  [inherited]
virtual void Isis::Tool::addToPermanent ( QToolBar toolbar  )  [inline, virtual, inherited]
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*

Referenced by Isis::WindowTool::addConnections(), Isis::TrackTool::addConnections(), Isis::FileTool::discard(), Isis::FileTool::exportView(), Isis::SunShadowTool::mouseButtonPress(), mouseButtonRelease(), Isis::RubberBandTool::mouseButtonRelease(), Isis::QnetTool::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::MeasureTool::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 * Isis::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(), and Isis::IException::Unknown.

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(), Isis::Cube::lineCount(), Isis::Cube::pixelType(), Isis::Cube::read(), and Isis::Cube::sampleCount().

Referenced by stretchBand().

QString Isis::StretchTool::menuName (  )  const [inline, 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 Isis::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 Isis::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 Isis::Tool::mouseMove ( QPoint  p  )  [protected, virtual, slot, inherited]
virtual void Isis::Tool::paintViewport ( MdiCubeViewport vp,
QPainter *  painter 
) [inline, virtual, inherited]
void Isis::Tool::registerTool ( MdiCubeViewport viewport  )  [protected, slot, inherited]

Registers the tool to the viewport.

Parameters:
viewport 

References 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::rectangle(), and Isis::Tool::rubberBandTool().

RubberBandTool * Isis::Tool::rubberBandTool (  )  [inherited]
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 Isis::Tool::setCubeViewport ( MdiCubeViewport cvp  )  [slot, inherited]

Sets the current viewport to the given cvp.

Parameters:
cvp 

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

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

void Isis::StretchTool::setCubeViewport ( CubeViewport cvp  )  [protected, slot]
void Isis::Tool::setList ( ToolList currentList  )  [inherited]

Referenced by Isis::ToolList::append().

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(), Isis::IException::User, and Isis::ViewportBuffer::working().

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(), Isis::Cube::lineCount(), Isis::Cube::pixelType(), Isis::Cube::read(), and Isis::Cube::sampleCount().

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 _t1,
CubeViewport _t2 
) [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().

Workspace * Isis::Tool::workspace (  )  [protected, inherited]

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