|
Isis 3.0 Developer's Reference (API) |
Home |
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