USGS

Isis 3.0 Developer's Reference (API)

Home

SpectralPlotTool.h

Go to the documentation of this file.
00001 #ifndef SpectralPlotTool_h
00002 #define SpectralPlotTool_h
00003 
00004 #include "AbstractPlotTool.h"
00005 
00006 #include <vector>
00007 
00008 #include <QMap>
00009 
00010 class QMainWindow;
00011 
00012 namespace geos {
00013   namespace geom {
00014     class Envelope;
00015     class Polygon;
00016   }
00017 }
00018 
00019 namespace Isis {
00020   class CubePlotCurve;
00021   class PlotWindow;
00022   class RubberBandComboBox;
00023   class Statistics;
00024 
00048   class SpectralPlotTool : public AbstractPlotTool {
00049       Q_OBJECT
00050 
00051     public:
00052       SpectralPlotTool(QWidget *parent);
00053 
00054     protected:
00055       void addTo(QMenu *menu);
00056       QWidget *createToolBarWidget(QStackedWidget *parent);
00057       virtual PlotWindow *createWindow();
00058       virtual void detachCurves();
00059       void enableRubberBandTool();
00060       QComboBox *spectralDisplayCombo() const;
00061       QAction *toolPadAction(ToolPad *pad);
00062       void updateTool();
00063 
00064     protected slots:
00065       virtual void rubberBandComplete();
00066       void viewportSelected();
00067 
00068     public slots:
00069       void refreshPlot();
00070 
00071     private slots:
00072       void selectCurvesToPlot();
00073 
00074     private:
00075       void getSpectralStatistics(QVector<double> &labels,
00076                                  QVector<Statistics> &data,
00077                                  MdiCubeViewport *viewport);
00078       void validatePlotCurves();
00079       double testSpecial(double pixel);
00080 
00082       QPointer<QComboBox> m_displayCombo;
00083 
00085       QPointer<RubberBandComboBox> m_rubberBandCombo;
00086 
00088       QPointer<QAction> m_toolPadAction;
00089 
00090       QPointer<QAction> m_plotAvgAction;
00091       QPointer<QAction> m_plotMinAction;
00092       QPointer<QAction> m_plotMaxAction;
00093       QPointer<QAction> m_plotStdDev1Action;
00094       QPointer<QAction> m_plotStdDev2Action;
00095 
00097       QScopedPointer<
00098         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_maxCurves;
00099 
00101       QScopedPointer<
00102         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_minCurves;
00103 
00105       QScopedPointer<
00106         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_avgCurves;
00107 
00109       QScopedPointer<
00110         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdDev1Curves;
00111 
00113       QScopedPointer<
00114         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdDev2Curves;
00115 
00117       QPointer<QAction> m_showHideBandMarkers;
00118   };
00119 };
00120 
00121 #endif