Isis Developer Reference
ScatterPlotWindow.h
Go to the documentation of this file.
1#ifndef ScatterPlotWindow_h
2#define ScatterPlotWindow_h
3
4// Only Parents of classes defined in this file should be included in this file!
5#include "PlotWindow.h"
6
7#include <QList>
8#include <QScopedPointer>
9
10class QwtPlotSpectrogram;
11class QwtPlotMarker;
12
13namespace Isis {
14 class Cube;
15 class ScatterPlotTool;
16
29 Q_OBJECT
30
31 public:
42
43 ScatterPlotWindow(QString title,
44 Cube *xAxisCube, int xAxisBand, int xAxisBinCount,
45 Cube *yAxisCube, int yAxisBand, int yAxisBinCount,
46 QwtInterval sampleRange, QwtInterval lineRange,
47 QWidget *parent);
48 virtual ~ScatterPlotWindow();
49
50 bool alarmingPlot() const;
51 bool alarmingViewport() const;
52 QPair<int, int> alarmPlotBoxSize() const;
53 AlarmRangeUnits alarmViewportUnits() const;
54 QPair<int, int> alarmViewportScreenBoxSize() const;
55 QPair<double, double> alarmViewportDnBoxSize() const;
56
57 bool eventFilter(QObject *o, QEvent *e);
58
59 virtual void paint(MdiCubeViewport *vp, QPainter *painter);
60
61 void setMousePosition(MdiCubeViewport *vp, QPoint mouseLoc);
62
63 void setAlarmingPlot(bool);
64 void setAlarmingViewport(bool);
65 void setAlarmPlotBoxSize(int, int);
66 void setAlarmViewportUnits(AlarmRangeUnits);
67 void setAlarmViewportScreenBoxSize(int, int);
68 void setAlarmViewportDnBoxSize(double, double);
69
70 public slots:
71 void forgetCubes();
72
73 protected slots:
74 void colorPlot();
75 void showHideContour();
76
77 private:
78 bool isXCube(MdiCubeViewport *vp) const;
79 bool isYCube(MdiCubeViewport *vp) const;
80
81 void mouseMoveEvent(QMouseEvent *e);
82 void mouseLeaveEvent(QMouseEvent *e);
83 void updateContourPen();
84
85 private slots:
86 void configureAlarming();
87
88 private:
90 QwtPlotSpectrogram *m_spectrogram;
91
93 QPointer<QAction> m_colorize;
95 QPointer<QAction> m_contour;
96
98 Cube *m_xAxisCube;
100 Cube *m_yAxisCube;
102 QPair<double, double> m_xCubeDnAlarmRange;
104 QPair<double, double> m_yCubeDnAlarmRange;
106 int m_xAxisCubeBand;
108 int m_yAxisCubeBand;
110 QwtInterval m_sampleRange;
112 QwtInterval m_lineRange;
113
115 bool m_alarmPlot;
117 bool m_alarmViewport;
118
120 int m_alarmPlotSamples;
122 int m_alarmPlotLines;
123
125 AlarmRangeUnits m_alarmViewportUnits;
127 int m_alarmViewportScreenWidth;
129 int m_alarmViewportScreenHeight;
131 double m_alarmViewportXDnBoxSize;
133 double m_alarmViewportYDnBoxSize;
134 };
135}
136
137#endif
138
IO Handler for Isis Cubes.
Definition Cube.h:168
Cube display widget for certain Isis MDI applications.
Definition MdiCubeViewport.h:39
Definition PlotWindow.h:88
Scatter Plot Window.
Definition ScatterPlotWindow.h:28
ScatterPlotWindow(QString title, Cube *xAxisCube, int xAxisBand, int xAxisBinCount, Cube *yAxisCube, int yAxisBand, int yAxisBinCount, QwtInterval sampleRange, QwtInterval lineRange, QWidget *parent)
Create a scatter plot window with the given data.
Definition ScatterPlotWindow.cpp:45
void setAlarmViewportScreenBoxSize(int, int)
This sets the screen pixel box size for alarming plot->viewport.
Definition ScatterPlotWindow.cpp:511
virtual void paint(MdiCubeViewport *vp, QPainter *painter)
If the viewport is showing the x axis cube data or y axis cube data, and alarming is enabled,...
Definition ScatterPlotWindow.cpp:317
void setAlarmingViewport(bool)
This enables or disables alarming plot->viewport.
Definition ScatterPlotWindow.cpp:471
bool alarmingPlot() const
This indicates if we are alarming from viewport to plot.
Definition ScatterPlotWindow.cpp:209
QPair< double, double > alarmViewportDnBoxSize() const
This is the alarming box size for plot->viewport in cube units (number of samples/lines).
Definition ScatterPlotWindow.cpp:271
AlarmRangeUnits
This enumeration differentiates alarming a strict cube DN box size from a screen region.
Definition ScatterPlotWindow.h:36
@ ScreenUnits
Alarming is a visible area around the mouse.
Definition ScatterPlotWindow.h:40
@ CubeUnits
Alarming is a DN range around the mouse.
Definition ScatterPlotWindow.h:38
void colorPlot()
This method switches the color mode of the scatter plot from black and white to color and visa versa.
Definition ScatterPlotWindow.cpp:551
bool alarmingViewport() const
This indicates if we are alarming from plot to viewport.
Definition ScatterPlotWindow.cpp:219
void setAlarmPlotBoxSize(int, int)
This sets the box size for alarming viewport->plot in cube samples/lines.
Definition ScatterPlotWindow.cpp:484
void setMousePosition(MdiCubeViewport *vp, QPoint mouseLoc)
Saves the current mouse position in the viewport so that the plot can be alarmed around that position...
Definition ScatterPlotWindow.cpp:406
QPair< int, int > alarmPlotBoxSize() const
This is the sample/line box sizes for alarming from viewport to plot.
Definition ScatterPlotWindow.cpp:229
void setAlarmViewportDnBoxSize(double, double)
This sets the cube DN box size for alarming plot->viewport.
Definition ScatterPlotWindow.cpp:528
bool eventFilter(QObject *o, QEvent *e)
We override events done on the plot canvas for alarming purposes.
Definition ScatterPlotWindow.cpp:285
void forgetCubes()
This causes the window to lose it's pointers to the input cubes.
Definition ScatterPlotWindow.cpp:540
void showHideContour()
This method hides or displays the contour lines on the spectrogram.
Definition ScatterPlotWindow.cpp:585
QPair< int, int > alarmViewportScreenBoxSize() const
This is the alarming box size for plot->viewport in screen units.
Definition ScatterPlotWindow.cpp:255
void setAlarmingPlot(bool)
This enables or disables alarming viewport->plot.
Definition ScatterPlotWindow.cpp:460
void setAlarmViewportUnits(AlarmRangeUnits)
This sets the units to be used for alarming plot->viewport.
Definition ScatterPlotWindow.cpp:495
virtual ~ScatterPlotWindow()
Definition ScatterPlotWindow.cpp:183
AlarmRangeUnits alarmViewportUnits() const
This is the active alarming units for plot->viewport.
Definition ScatterPlotWindow.cpp:241
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16