Isis 3 Programmer Reference
Isis::ControlNetTool Class Reference

ControlNetTool Handles mouse events on CubeDnViews for control point editing for the ipce app. More...

#include <ControlNetTool.h>

Inheritance diagram for Isis::ControlNetTool:
Inheritance graph
Collaboration diagram for Isis::ControlNetTool:
Collaboration graph

Public Slots

void loadNetwork ()
 
void activate (bool)
 Activates the tool. More...
 
virtual void updateTool ()
 Updates the tool. More...
 
void setCubeViewport (MdiCubeViewport *cvp)
 Sets the current viewport to the given cvp. More...
 

Signals

void modifyControlPoint (ControlPoint *controlPoint, QString serialNumber)
 
void deleteControlPoint (ControlPoint *controlPoint)
 
void createControlPoint (double latitude, double longitude, Cube *cube, bool isGroundSource=false)
 
void clearWarningSignal ()
 
void toolActivated ()
 
void viewportChanged ()
 

Public Member Functions

 ControlNetTool (Directory *directory, QWidget *parent)
 ControlNet tool - Handles mouse button actions and drawing control points on viewports in the CubeDnView for the ipce application. More...
 
void setControlNet (ControlNet *controlNet)
 Set the active control net to be used for editing. More...
 
void paintViewport (MdiCubeViewport *cvp, QPainter *painter)
 This will draw the control measures on the given cube viewport. More...
 
void addTo (ViewportMainWindow *mw)
 Adds the tool to the application. More...
 
void addTo (ToolPad *toolpad)
 Adds the tool to the toolpad. More...
 
virtual void addTo (QMenu *menu)
 
virtual void addTo (Workspace *ws)
 Adds the given workspace to the cubeviewport list. More...
 
virtual QString menuName () const
 Anytime a tool is created, you must give it a name for the menu. More...
 
virtual void addToPermanent (QToolBar *toolbar)
 
void addToActive (QToolBar *toolbar)
 
QString toolIconDir () const
 returns the path to the icon directory. More...
 
RubberBandToolrubberBandTool ()
 
void setList (ToolList *currentList)
 

Protected Types

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

Protected Slots

void mouseButtonRelease (QPoint p, Qt::MouseButton s)
 Handle mouse events on CubeViewport. More...
 
virtual void rubberBandComplete ()
 
virtual void screenPixelsChanged ()
 This is called when actions change which pixels from the cube are displayed. More...
 
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 ControlNet tool action to the tool pad. More...
 
virtual void mouseDoubleClick (QPoint p)
 
virtual void mouseButtonPress (QPoint p, Qt::MouseButton s)
 
virtual void updateMeasure ()
 
virtual void scaleChanged ()
 
virtual void stretchRequested (MdiCubeViewport *, int)
 
void registerTool (MdiCubeViewport *viewport)
 Registers the tool to the viewport. More...
 
MdiCubeViewportcubeViewport () const
 Return the current cubeviewport. More...
 
CubeViewportListcubeViewportList () const
 Return the list of cubeviewports. More...
 
virtual QWidgetcreateToolBarWidget (QStackedWidget *parent)
 Anytime a tool is created, you must add it to the tool bar. More...
 
virtual void addConnections (MdiCubeViewport *cvp)
 Anytime a tool is created, you must add the connections for it. More...
 
virtual void removeConnections (MdiCubeViewport *cvp)
 Anytime a tool is created, you must be able to remove it's connections. More...
 
virtual void enableRubberBandTool ()
 Anytime a tool is created, you may use the rubber band tool. More...
 
Workspaceworkspace ()
 

Private Slots

void paintAllViewports ()
 This method will repaint the Control Points in each viewport. More...
 

Private Member Functions

void createActions ()
 
void createMenus ()
 
void drawAllMeasurements (MdiCubeViewport *vp, QPainter *painter)
 Draw all measurments located on the image in this viewPort. More...
 
void drawGroundMeasures (MdiCubeViewport *vp, QPainter *painter, UniversalGroundMap *groundMap)
 Draw all Fixed or Constrained points on the ground source viewport. More...
 

Private Attributes

QPointer< MainWindowm_ControlNetTool
 
Directorym_directory
 
CubeDnViewm_view
 
QPointer< ControlNetm_controlNet
 
QPointer< Workspacem_workspace
 

Detailed Description

ControlNetTool Handles mouse events on CubeDnViews for control point editing for the ipce app.

Author
2016-09-01 Tracie Sucharski
History:

2016-09-30 Tracie Sucharski - Pass in directory to constructor, so that we can query for shapes and other data from the project.

2016-10-25 Tracie Sucharski - Check for existence of Control net in the paintViewport method.

2017-05-18 Tracie Sucharski - Added serialNumber to the modifyControlPoint signal.

2017-07-27 Tyler Wilson - Added the ability for the Ipce tool to check and see if control nets exist within the current project within the toolPadAction function. If no control nets exist within the project, the Ipce tool is disabled on start-up. Fixes #4994.

2017-08-02 Tracie Sucharski - Draw the current edit Control Point as a circle with center crosshair in red. Removed refresh method; it was not being used. Fixes #5007, #5008.

2017-08-08 Cole Neubauer - Renamed from IpceTool. Fixes #5090.

2017-08-09 Cole Neubauer - Added loadNetwork() for changing inbetween active networks Fixes #4567

2018-03-12 Tracie Sucharski - Fixed some documentation leftover from renaming from IpceTool. References #5090.

2018-03-27 Tracie Sucharski - Redraw cube viewports when a new control net is loaded.

2018-04-13 Tracie Sucharski - In mouseButtonRelease method return if a control net has not been set.

2018-09-21 Tracie Sucharski - Draw Fixed and Constrained points on ground cubes. References #5504.

Definition at line 64 of file ControlNetTool.h.

Member Typedef Documentation

◆ CubeViewportList

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

A list of cubeviewports.

Definition at line 219 of file Tool.h.

Constructor & Destructor Documentation

◆ ControlNetTool()

Isis::ControlNetTool::ControlNetTool ( Directory directory,
QWidget parent 
)

ControlNet tool - Handles mouse button actions and drawing control points on viewports in the CubeDnView for the ipce application.

Parameters
parentPointer to the parent widget for the ControlNet tool
Author
2016-09-01 Tracie Sucharski

Definition at line 50 of file ControlNetTool.cpp.

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 253 of file Tool.h.

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

◆ addTo() [1/4]

◆ 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::ToolPad::addAction(), 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

◆ addToPermanent()

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

◆ createToolBarWidget()

virtual QWidget* Isis::Tool::createToolBarWidget ( QStackedWidget *  parent)
inlineprotectedvirtualinherited

◆ cubeViewport()

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

Return the current cubeviewport.

Returns
CubeViewport*

Definition at line 211 of file Tool.h.

References Isis::Tool::m_cvp.

Referenced by Isis::WindowTool::addConnections(), Isis::TrackTool::addConnections(), Isis::StretchTool::advancedStretchChanged(), Isis::FindTool::centerLinkedViewports(), Isis::StretchTool::changeStretch(), Isis::BandTool::changeView(), Isis::BandTool::copyLinkedViewports(), Isis::FileTool::discard(), Isis::Tool::enableToolBar(), Isis::FileTool::exportToList(), Isis::FileTool::exportView(), Isis::StatisticsTool::getStatistics(), Isis::FindTool::handleRecordClicked(), Isis::EditTool::LineToPoints(), Isis::TrackTool::locateCursor(), Isis::SunShadowTool::mouseButtonPress(), mouseButtonRelease(), Isis::RubberBandTool::mouseButtonRelease(), Isis::EditTool::mouseButtonRelease(), Isis::FeatureNomenclatureTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::StretchTool::mouseButtonRelease(), Isis::MatchTool::mouseButtonRelease(), Isis::QnetTool::mouseButtonRelease(), Isis::AdvancedTrackTool::mouseLeave(), Isis::ScatterPlotTool::mouseMove(), Isis::SunShadowTool::mouseMove(), Isis::TrackTool::mouseMove(), Isis::RubberBandTool::mouseMove(), Isis::SunShadowTool::paintViewport(), Isis::RubberBandTool::paintViewport(), Isis::FindTool::paintViewport(), Isis::FileTool::print(), Isis::SunShadowTool::recalculateShadowHeight(), Isis::EditTool::redoEdit(), Isis::FindTool::refresh(), Isis::HistogramTool::refreshPlot(), Isis::SpatialPlotTool::refreshPlot(), Isis::SpectralPlotTool::refreshPlot(), Isis::WindowTool::removeConnections(), Isis::TrackTool::removeConnections(), Isis::RubberBandTool::repaint(), Isis::WindowTool::resizeWindows(), Isis::HistogramTool::rubberBandComplete(), Isis::MeasureTool::rubberBandComplete(), Isis::ZoomTool::rubberBandComplete(), Isis::EditTool::rubberBandComplete(), Isis::StretchTool::rubberBandComplete(), Isis::FileTool::save(), Isis::FileTool::saveAs(), Isis::FileTool::saveAsCubeByOption(), Isis::FileTool::saveAsReducedCube(), Isis::FileTool::saveInfo(), Isis::BandTool::setBandBin(), Isis::BandTool::setList(), Isis::StretchTool::setStretchAcrossBands(), Isis::StretchTool::setStretchAllViewports(), Isis::StretchTool::showAdvancedDialog(), Isis::ScatterPlotTool::showNewScatterPlotConfig(), Isis::StretchTool::stretchChanged(), Isis::StretchTool::stretchGlobal(), Isis::StretchTool::stretchGlobalAllBands(), Isis::StretchTool::stretchRegional(), Isis::EditTool::undoEdit(), Isis::StretchTool::updateAdvStretchDialogforAll(), Isis::StretchTool::updateHistograms(), Isis::TrackTool::updateLabels(), Isis::MeasureTool::updateMeasure(), Isis::AdvancedTrackTool::updateRow(), Isis::WindowTool::updateTool(), Isis::BlinkTool::updateTool(), Isis::SpecialPixelTool::updateTool(), Isis::BandTool::updateTool(), Isis::SunShadowTool::updateTool(), Isis::AbstractPlotTool::updateTool(), Isis::ZoomTool::updateTool(), Isis::FileTool::updateTool(), Isis::EditTool::updateTool(), Isis::FindTool::updateTool(), Isis::StretchTool::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::StereoTool::paintAllViewports(), paintAllViewports(), Isis::MatchTool::paintAllViewports(), Isis::QnetTool::paintAllViewports(), Isis::FindTool::refresh(), Isis::ScatterPlotTool::repaintViewports(), Isis::AbstractPlotTool::repaintViewports(), Isis::WindowTool::resizeWindows(), Isis::BlinkTool::reverse(), Isis::ZoomTool::rubberBandComplete(), Isis::MatchTool::serialNumberList(), setControlNet(), Isis::FeatureNomenclatureTool::setFontColor(), Isis::FeatureNomenclatureTool::setFontSize(), Isis::FeatureNomenclatureTool::setShowApprovedOnly(), Isis::StretchTool::setStretchAllViewports(), Isis::FeatureNomenclatureTool::setVectorType(), Isis::StretchTool::stretchGlobalAllViewports(), Isis::BlinkTool::toggleLink(), Isis::WindowTool::unlinkWindows(), Isis::MeasureTool::updateMeasure(), Isis::AdvancedTrackTool::updateRow(), Isis::WindowTool::updateTool(), Isis::BlinkTool::updateTool(), Isis::FindTool::updateTool(), Isis::AbstractPlotTool::viewportsToPlot(), Isis::ZoomTool::zoomBy(), Isis::ZoomTool::zoomFit(), Isis::ZoomTool::zoomFitHeight(), Isis::ZoomTool::zoomFitWidth(), and Isis::ZoomTool::zoomManual().

◆ drawAllMeasurements()

void Isis::ControlNetTool::drawAllMeasurements ( MdiCubeViewport vp,
QPainter *  painter 
)
private

Draw all measurments located on the image in this viewPort.

Parameters
vp(MdiCubeViewport *) Viewport where measurements will be drawn
painter(QPainter *) Does the actual drawing on the viewport widget
History:

2010-06-03 Jeannie Walldren - Removed "std::" since "using namespace std"

2010-06-08 Jeannie Walldren - Fixed bug that was causing ignored measures not be drawn as yellow unless ControlNetTool was open

2010-07-01 Jeannie Walldren - Modified to draw points selected in ControlNetTool last so they lay on top of all other points in the image.

2011-04-15 Tracie Sucharski - Fixed bug which was causing all measures to be drawn on all cubes. Also removed loop through measures, instead just get measure for given serial number.

2011-10-20 Tracie Sucharski - Add check for a control network that does not yet have any control points.

2011-11-09 Tracie Sucharski - If there are no measures for this cube, return.

2017-07-31 Tracie Sucharski - The current edit point will be drawn in red as a crosshair enclosed by circle.

Definition at line 281 of file ControlNetTool.cpp.

References Isis::SerialNumber::Compose(), Isis::Directory::controlPointEditView(), Isis::ControlPointEditView::controlPointEditWidget(), Isis::Shape::cube(), Isis::CubeViewport::cube(), Isis::CubeViewport::cubeToViewport(), drawGroundMeasures(), Isis::ControlPoint::Free, Isis::ControlPoint::GetId(), Isis::ControlPoint::GetType(), Isis::ControlPoint::HasSerialNumber(), Isis::Directory::project(), and Isis::Shape::serialNumber().

Referenced by paintViewport().

◆ drawGroundMeasures()

void Isis::ControlNetTool::drawGroundMeasures ( MdiCubeViewport vp,
QPainter *  painter,
UniversalGroundMap groundMap 
)
private

Draw all Fixed or Constrained points on the ground source viewport.

Parameters
vpViewport whose measurements will be drawn
painterThe QPainter used to draw crosshair
groundMapThe UniversalGroundMap for the Cube associated with this viewport

Definition at line 382 of file ControlNetTool.cpp.

References Isis::Directory::controlPointEditView(), Isis::ControlPointEditView::controlPointEditWidget(), Isis::CubeViewport::cubeToViewport(), Isis::ControlPoint::Free, Isis::ControlPoint::GetId(), Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), Isis::ControlPoint::GetType(), Isis::UniversalGroundMap::Line(), Isis::UniversalGroundMap::Sample(), and Isis::UniversalGroundMap::SetGround().

Referenced by drawAllMeasurements().

◆ enableRubberBandTool()

void Isis::Tool::enableRubberBandTool ( )
protectedvirtualinherited

Anytime a tool is created, you may use the rubber band tool.

Enable the use of the rubberband tool.

Reimplemented in Isis::RubberBandTool, Isis::ZoomTool, Isis::MeasureTool, Isis::StereoTool, Isis::SpatialPlotTool, Isis::SpectralPlotTool, and Isis::HistogramTool.

Definition at line 339 of file Tool.cpp.

References Isis::RubberBandTool::disable().

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

◆ menuName()

virtual QString Isis::Tool::menuName ( ) const
inlinevirtualinherited

◆ 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::ControlNetTool::mouseButtonRelease ( QPoint  p,
Qt::MouseButton  s 
)
protectedslot

Handle mouse events on CubeViewport.

Parameters
p[in](QPoint) Point under cursor in cubeviewport
s[in](Qt::MouseButton) Which mouse button was pressed
Author
2016-09-01 Tracie Sucharski

Definition at line 131 of file ControlNetTool.cpp.

References Isis::SerialNumber::Compose(), Isis::CubeViewport::cube(), Isis::Tool::cubeViewport(), Isis::Cube::fileName(), Isis::UniversalGroundMap::SetImage(), Isis::CubeViewport::universalGroundMap(), Isis::UniversalGroundMap::UniversalLatitude(), Isis::UniversalGroundMap::UniversalLongitude(), and Isis::CubeViewport::viewportToCube().

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

◆ mouseMove

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

◆ paintAllViewports

void Isis::ControlNetTool::paintAllViewports ( )
privateslot

This method will repaint the Control Points in each viewport.

History:
2010-06-03 Jeannie Walldren - Removed "std::" since "using namespace std"

Definition at line 240 of file ControlNetTool.cpp.

References Isis::Tool::cubeViewportList().

Referenced by setControlNet().

◆ paintViewport()

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

This will draw the control measures on the given cube viewport.

Parameters
vp(MdiCubeViewport *) Cube viewport control measures are drawn on
painter(QPainter) The painter used for the drawing

Reimplemented from Isis::Tool.

Definition at line 225 of file ControlNetTool.cpp.

References drawAllMeasurements().

◆ 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 261 of file Tool.h.

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

◆ screenPixelsChanged

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

This is called when actions change which pixels from the cube are displayed.

Definition at line 162 of file Tool.h.

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

◆ setControlNet()

void Isis::ControlNetTool::setControlNet ( ControlNet cnet)

Set the active control net to be used for editing.

Parameters
cnet(ControlNet *) The active control net from Directory that is being used for editing

Definition at line 105 of file ControlNetTool.cpp.

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

◆ setCubeViewport

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

◆ toolIconDir()

QString Isis::Tool::toolIconDir ( ) const
inlineinherited

◆ toolPadAction()

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

Adds the ControlNet tool action to the tool pad.

Parameters
padTool pad
Returns
QAction* Pointer to ControlNet tool action
History:
2017-07-25 Tyler Wilson - Set the object name for the QAction in this method. It provides a convenient key to search through a list of actions in other classes. References #4994.

Reimplemented from Isis::Tool.

Definition at line 75 of file ControlNetTool.cpp.

References Isis::Project::controls(), Isis::Directory::project(), and Isis::Tool::toolIconDir().

◆ updateTool


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