Isis 3 Developer Reference
ScatterPlotData.h
Go to the documentation of this file.
1 #ifndef ScatterPlotData_h
2 #define ScatterPlotData_h
3 
4 #include <qwt_raster_data.h>
5 
6 #include <QScopedPointer>
7 #include <QVector>
8 
9 #include "Stretch.h"
10 
11 template <typename A, typename B> struct QPair;
12 template <typename T> class QVector;
13 
14 class QwtInterval;
15 
16 namespace Isis {
17  class Cube;
18 
28  class ScatterPlotData : public QwtRasterData {
29  public:
30  ScatterPlotData(Cube *xCube, int xCubeBand, int xBinCount,
31  Cube *yCube, int yCubeBand, int yBinCount,
32  QwtInterval sampleRange, QwtInterval lineRange);
33  ScatterPlotData(const ScatterPlotData &other);
34 
36  virtual QwtRasterData *copy() const;
37  virtual double value(double x, double y) const;
38 
39  double xCubeMin() const;
40  double xCubeMax() const;
41  double yCubeMin() const;
42  double yCubeMax() const;
43 
44  void swap(ScatterPlotData &other);
45 
46  QPair<double, double> binXY(int binIndex) const;
47  int binCount(int binIndex) const;
48  int numberOfBins() const;
49 
51 
52  void alarm(double x, double y);
53  void clearAlarms();
54 
55  QRectF pixelHint(const QRectF &area) const;
56 
58 
59  private:
60  int binCount(int xIndex, int yIndex) const;
61  int binIndex(int xIndex, int yIndex) const;
62  int binIndex(double x, double y) const;
63  QPair<int, int> binXYIndices(int binIndex) const;
64  QPair<int, int> binXYIndices(double x, double y) const;
65 
66  QScopedPointer<Stretch> m_xDnToBinStretch;
67  QScopedPointer<Stretch> m_yDnToBinStretch;
68 
73  QScopedPointer< QVector< QVector<int> > > m_counts;
74 
76  int m_maxCount;
77 
81  QScopedPointer< QMap<int, bool> > m_alarmedBins;
82 
84  double m_xCubeMin;
86  double m_xCubeMax;
88  double m_yCubeMin;
90  double m_yCubeMax;
91  };
92 };
93 
94 #endif
ScatterPlotData(Cube *xCube, int xCubeBand, int xBinCount, Cube *yCube, int yCubeBand, int yBinCount, QwtInterval sampleRange, QwtInterval lineRange)
ScatterPlotDataConstructor.
Definition: ScatterPlotData.cpp:26
double yCubeMax() const
Return the max DN value for the y-axis cube&#39;s data range.
Definition: ScatterPlotData.cpp:202
QPair< double, double > binXY(int binIndex) const
Get the center X/Y Dn values for the bin at index.
Definition: ScatterPlotData.cpp:232
int binCount(int binIndex) const
Get the count (number of values) which fall into the bin at index.
Definition: ScatterPlotData.cpp:269
double yCubeMin() const
Return the min DN value for the y-axis cube&#39;s data range.
Definition: ScatterPlotData.cpp:192
~ScatterPlotData()
Destructor.
Definition: ScatterPlotData.cpp:129
QRectF pixelHint(const QRectF &area) const
This is a hint given to qwt for how to render a pixel in the spectrogram.
Definition: ScatterPlotData.cpp:344
double xCubeMin() const
Return the min DN value for the x-axis cube&#39;s data range.
Definition: ScatterPlotData.cpp:172
void alarm(double x, double y)
Alarm the bin (highlight it) at the given x/y DN value.
Definition: ScatterPlotData.cpp:323
This is the QwtRasterData for a scatter plot.
Definition: ScatterPlotData.h:28
double xCubeMax() const
Return the max DN value for the y-axis cube&#39;s data range.
Definition: ScatterPlotData.cpp:182
ScatterPlotData & operator=(const ScatterPlotData &other)
Take the data from other and copy it into this.
Definition: ScatterPlotData.cpp:365
QVector< double > discreteXValues() const
Get a list of all of the x-bin center values for this scatter plot.
Definition: ScatterPlotData.cpp:297
int numberOfBins() const
Get the total number of bins (bin count in x * bin count in y).
Definition: ScatterPlotData.cpp:280
virtual double value(double x, double y) const
This gets called every time the scatter plot is re-drawn.
Definition: ScatterPlotData.cpp:152
Definition: Calculator.h:33
void clearAlarms()
Forget all alarmed bins (viewport->plot).
Definition: ScatterPlotData.cpp:333
void swap(ScatterPlotData &other)
This is part of the copy-and-swap paradigm.
Definition: ScatterPlotData.cpp:212
virtual QwtRasterData * copy() const
Returns a copy of the ScatterPlotData object.
Definition: ScatterPlotData.cpp:138
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
Definition: CubeIoHandler.h:39
IO Handler for Isis Cubes.
Definition: Cube.h:170