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