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 
00050   class SpectralPlotTool : public AbstractPlotTool {
00051       Q_OBJECT
00052 
00053     public:
00054       SpectralPlotTool(QWidget *parent);
00055 
00056     protected:
00057       void addTo(QMenu *menu);
00058       QWidget *createToolBarWidget(QStackedWidget *parent);
00059       virtual PlotWindow *createWindow();
00060       virtual void detachCurves();
00061       void enableRubberBandTool();
00062       QComboBox *spectralDisplayCombo() const;
00063       QAction *toolPadAction(ToolPad *pad);
00064       void updateTool();
00065 
00066     protected slots:
00067       virtual void rubberBandComplete();
00068       void viewportSelected();
00069 
00070     public slots:
00071       void refreshPlot();
00072 
00073     private slots:
00074       void selectCurvesToPlot();
00075 
00076     private:
00077       void getSpectralStatistics(QVector<double> &labels,
00078                                  QVector<Statistics> &data,
00079                                  MdiCubeViewport *viewport);
00080       void validatePlotCurves();
00081 
00083       QPointer<QComboBox> m_displayCombo;
00084 
00086       QPointer<RubberBandComboBox> m_rubberBandCombo;
00087 
00089       QPointer<QAction> m_toolPadAction;
00090 
00092       QPointer<QAction> m_plotAvgAction;
00094       QPointer<QAction> m_plotMinAction;
00096       QPointer<QAction> m_plotMaxAction;
00098       QPointer<QAction> m_plotStdDev1Action;
00100       QPointer<QAction> m_plotStdDev2Action;
00102       QPointer<QAction> m_plotStdErr1Action;
00104       QPointer<QAction> m_plotStdErr2Action;
00105 
00107       QScopedPointer<
00108         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_maxCurves;
00109 
00111       QScopedPointer<
00112         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_minCurves;
00113 
00115       QScopedPointer<
00116         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_avgCurves;
00117 
00119       QScopedPointer<
00120         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdDev1Curves;
00121 
00123       QScopedPointer<
00124         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdDev2Curves;
00125 
00127       QScopedPointer<
00128         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdErr1Curves;
00129 
00131       QScopedPointer<
00132         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_stdErr2Curves;
00133 
00134 
00136       QPointer<QAction> m_showHideBandMarkers;
00137   };
00138 };
00139 
00140 #endif