Isis 3 Programmer Reference
ScatterPlotData.h
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 
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;
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 
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
Isis::ScatterPlotData::m_alarmedBins
QScopedPointer< QMap< int, bool > > m_alarmedBins
map from bin index to alarm state (true for alarmed)
Definition: ScatterPlotData.h:81
Isis::ScatterPlotData::binIndex
int binIndex(int xIndex, int yIndex) const
Get the single-index position given an x/y index position.
Definition: ScatterPlotData.cpp:402
Isis::ScatterPlotData::m_xCubeMax
double m_xCubeMax
The maximum DN value for the x cube.
Definition: ScatterPlotData.h:86
QwtRasterData
Isis::ScatterPlotData::m_yDnToBinStretch
QScopedPointer< Stretch > m_yDnToBinStretch
Stretch 2.
Definition: ScatterPlotData.h:67
Isis::ScatterPlotData::m_yCubeMin
double m_yCubeMin
The minimum DN value for the y cube.
Definition: ScatterPlotData.h:88
Isis::ScatterPlotData::m_maxCount
int m_maxCount
The maximum value in m_counts, stored for efficiency.
Definition: ScatterPlotData.h:76
Isis::ScatterPlotData::m_yCubeMax
double m_yCubeMax
The maximum DN value for the y cube.
Definition: ScatterPlotData.h:90
Isis::ScatterPlotData::m_xDnToBinStretch
QScopedPointer< Stretch > m_xDnToBinStretch
Stretch 1.
Definition: ScatterPlotData.h:66
Isis::ScatterPlotData::m_counts
QScopedPointer< QVector< QVector< int > > > m_counts
The bin counts stored by 2D (x/y) index position.
Definition: ScatterPlotData.h:73
Isis::ScatterPlotData::xCubeMax
double xCubeMax() const
Return the max DN value for the y-axis cube's data range.
Definition: ScatterPlotData.cpp:182
Isis::ScatterPlotData::clearAlarms
void clearAlarms()
Forget all alarmed bins (viewport->plot).
Definition: ScatterPlotData.cpp:333
Isis::ScatterPlotData::ScatterPlotData
ScatterPlotData(Cube *xCube, int xCubeBand, int xBinCount, Cube *yCube, int yCubeBand, int yBinCount, QwtInterval sampleRange, QwtInterval lineRange)
ScatterPlotDataConstructor.
Definition: ScatterPlotData.cpp:26
Isis::ScatterPlotData::swap
void swap(ScatterPlotData &other)
This is part of the copy-and-swap paradigm.
Definition: ScatterPlotData.cpp:212
Isis::ScatterPlotData::operator=
ScatterPlotData & operator=(const ScatterPlotData &other)
Take the data from other and copy it into this.
Definition: ScatterPlotData.cpp:365
Isis::ScatterPlotData::binXY
QPair< double, double > binXY(int binIndex) const
Get the center X/Y Dn values for the bin at index.
Definition: ScatterPlotData.cpp:232
Isis::ScatterPlotData::copy
virtual QwtRasterData * copy() const
Returns a copy of the ScatterPlotData object.
Definition: ScatterPlotData.cpp:138
Isis::ScatterPlotData::numberOfBins
int numberOfBins() const
Get the total number of bins (bin count in x * bin count in y).
Definition: ScatterPlotData.cpp:280
Isis::ScatterPlotData::pixelHint
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
Isis::ScatterPlotData::yCubeMin
double yCubeMin() const
Return the min DN value for the y-axis cube's data range.
Definition: ScatterPlotData.cpp:192
Isis::ScatterPlotData
This is the QwtRasterData for a scatter plot.
Definition: ScatterPlotData.h:28
Isis::Cube
IO Handler for Isis Cubes.
Definition: Cube.h:167
Isis::ScatterPlotData::xCubeMin
double xCubeMin() const
Return the min DN value for the x-axis cube's data range.
Definition: ScatterPlotData.cpp:172
Isis::ScatterPlotData::discreteXValues
QVector< double > discreteXValues() const
Get a list of all of the x-bin center values for this scatter plot.
Definition: ScatterPlotData.cpp:297
Isis::ScatterPlotData::value
virtual double value(double x, double y) const
This gets called every time the scatter plot is re-drawn.
Definition: ScatterPlotData.cpp:152
Isis::ScatterPlotData::m_xCubeMin
double m_xCubeMin
The minimum DN value for the x cube.
Definition: ScatterPlotData.h:84
Isis::ScatterPlotData::yCubeMax
double yCubeMax() const
Return the max DN value for the y-axis cube's data range.
Definition: ScatterPlotData.cpp:202
Isis::ScatterPlotData::binCount
int binCount(int binIndex) const
Get the count (number of values) which fall into the bin at index.
Definition: ScatterPlotData.cpp:269
QPair
This is free and unencumbered software released into the public domain.
Definition: CubeIoHandler.h:23
Isis::ScatterPlotData::~ScatterPlotData
~ScatterPlotData()
Destructor.
Definition: ScatterPlotData.cpp:129
Isis::ScatterPlotData::binXYIndices
QPair< int, int > binXYIndices(int binIndex) const
Get the 2D index index position given a 1D (flat) index position.
Definition: ScatterPlotData.cpp:437
QVector
This is free and unencumbered software released into the public domain.
Definition: Calculator.h:18
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::ScatterPlotData::alarm
void alarm(double x, double y)
Alarm the bin (highlight it) at the given x/y DN value.
Definition: ScatterPlotData.cpp:323