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 
00057   class SpectralPlotTool : public AbstractPlotTool {
00058       Q_OBJECT
00059 
00060     public:
00061       SpectralPlotTool(QWidget *parent);
00062 
00063     protected:
00064       void addTo(QMenu *menu);
00065       QWidget *createToolBarWidget(QStackedWidget *parent);
00066       virtual PlotWindow *createWindow();
00067       virtual void detachCurves();
00068       void enableRubberBandTool();
00069       QComboBox *spectralDisplayCombo() const;
00070       QAction *toolPadAction(ToolPad *pad);
00071       void updateTool();
00072 
00073     protected slots:
00074       virtual void rubberBandComplete();
00075       void viewportSelected();
00076 
00077     public slots:
00078       void refreshPlot();
00079 
00080     private slots:
00081       void selectCurvesToPlot();
00082 
00083     private:
00084       void getSpectralStatistics(QVector<double> &labels,
00085                                  QVector<Statistics> &data,
00086                                  MdiCubeViewport *viewport);
00087       void validatePlotCurves();
00088 
00090       QPointer<QComboBox> m_displayCombo;
00091 
00093       QPointer<RubberBandComboBox> m_rubberBandCombo;
00094 
00096       QPointer<QAction> m_toolPadAction;
00097 
00099       QPointer<QAction> m_plotAvgAction;
00101       QPointer<QAction> m_plotMinAction;
00103       QPointer<QAction> m_plotMaxAction;
00105       QPointer<QAction> m_plotStdDev1Action;
00107       QPointer<QAction> m_plotStdDev2Action;
00109       QPointer<QAction> m_plotStdErr1Action;
00111       QPointer<QAction> m_plotStdErr2Action;
00112 
00114       QScopedPointer<
00115         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_maxCurves;
00116 
00118       QScopedPointer<
00119         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_minCurves;
00120 
00122       QScopedPointer<
00123         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_avgCurves;
00124 
00126       QScopedPointer<
00127         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdDev1Curves;
00128 
00130       QScopedPointer<
00131         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdDev2Curves;
00132 
00134       QScopedPointer<
00135         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdErr1Curves;
00136 
00138       QScopedPointer<
00139         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdErr2Curves;
00140 
00141 
00143       QPointer<QAction> m_showHideBandMarkers;
00144   };
00145 };
00146 
00147 #endif