USGS

Isis 3.0 Object Programmers' Reference

Home

SpatialPlotTool.h
00001 #ifndef SpatialPlotTool_h
00002 #define SpatialPlotTool_h
00003 
00004 #include "AbstractPlotTool.h"
00005 
00006 #include <QMap>
00007 
00008 class QAction;
00009 class QComboBox;
00010 class QMainWindow;
00011 
00012 template <typename T> class QVector;
00013 
00014 namespace Isis {
00015   class CubePlotCurve;
00016   class PlotWindow;
00017   class RubberBandComboBox;
00018   class SurfacePoint;
00019   class UniversalGroundMap;
00020 
00047   class SpatialPlotTool : public AbstractPlotTool {
00048       Q_OBJECT
00049 
00050     public:
00051       SpatialPlotTool(QWidget *parent);
00052 
00053     public slots:
00054       void refreshPlot();
00055 
00056     protected:
00057       QWidget *createToolBarWidget(QStackedWidget *parent);
00058       virtual PlotWindow *createWindow();
00059       virtual void detachCurves();
00060       void enableRubberBandTool();
00061       QAction *toolPadAction(ToolPad *pad);
00062       void updateTool();
00063 
00064     protected slots:
00065       virtual void rubberBandComplete();
00066       void viewportSelected();
00067 
00068     private:
00069       QVector<QPointF> getSpatialStatistics(MdiCubeViewport *);
00070       static SurfacePoint resultToSurfacePoint(UniversalGroundMap *);
00071       void validatePlotCurves();
00072 
00073     private:
00074       QPointer<QComboBox> m_xUnitsCombo;
00075 
00077       QPointer<QAction> m_toolPadAction;
00078 
00080       QPointer<QComboBox> m_interpolationCombo;
00081 
00083       QScopedPointer<
00084         QMap< MdiCubeViewport *, QPointer<CubePlotCurve> > > m_spatialCurves;
00085 
00087       QPointer<RubberBandComboBox> m_rubberBandCombo;
00088   };
00089 };
00090 
00091 #endif