File failed to load: https://isis.astrogeology.usgs.gov/7.1.0/Object/assets/jax/output/NativeMML/config.js
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:
41 };
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;
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);
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:46
void setAlarmViewportScreenBoxSize(int, int)
This sets the screen pixel box size for alarming plot->viewport.
Definition: ScatterPlotWindow.cpp:513
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:318
void setAlarmingViewport(bool)
This enables or disables alarming plot->viewport.
Definition: ScatterPlotWindow.cpp:473
bool alarmingPlot() const
This indicates if we are alarming from viewport to plot.
Definition: ScatterPlotWindow.cpp:210
QPair< double, double > alarmViewportDnBoxSize() const
This is the alarming box size for plot->viewport in cube units (number of samples/lines).
Definition: ScatterPlotWindow.cpp:272
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:553
bool alarmingViewport() const
This indicates if we are alarming from plot to viewport.
Definition: ScatterPlotWindow.cpp:220
void setAlarmPlotBoxSize(int, int)
This sets the box size for alarming viewport->plot in cube samples/lines.
Definition: ScatterPlotWindow.cpp:486
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:407
QPair< int, int > alarmPlotBoxSize() const
This is the sample/line box sizes for alarming from viewport to plot.
Definition: ScatterPlotWindow.cpp:230
void setAlarmViewportDnBoxSize(double, double)
This sets the cube DN box size for alarming plot->viewport.
Definition: ScatterPlotWindow.cpp:530
bool eventFilter(QObject *o, QEvent *e)
We override events done on the plot canvas for alarming purposes.
Definition: ScatterPlotWindow.cpp:286
void forgetCubes()
This causes the window to lose it's pointers to the input cubes.
Definition: ScatterPlotWindow.cpp:542
void showHideContour()
This method hides or displays the contour lines on the spectrogram.
Definition: ScatterPlotWindow.cpp:587
QPair< int, int > alarmViewportScreenBoxSize() const
This is the alarming box size for plot->viewport in screen units.
Definition: ScatterPlotWindow.cpp:256
void setAlarmingPlot(bool)
This enables or disables alarming viewport->plot.
Definition: ScatterPlotWindow.cpp:462
void setAlarmViewportUnits(AlarmRangeUnits)
This sets the units to be used for alarming plot->viewport.
Definition: ScatterPlotWindow.cpp:497
virtual ~ScatterPlotWindow()
Definition: ScatterPlotWindow.cpp:184
AlarmRangeUnits alarmViewportUnits() const
This is the active alarming units for plot->viewport.
Definition: ScatterPlotWindow.cpp:242
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
This is free and unencumbered software released into the public domain.
Definition: CubeIoHandler.h:23

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 02/21/2025 21:56:51