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 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