USGS

Isis 3.0 Object Programmers' Reference

Home

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> class QPair;
12 template <typename T> class QVector;
13 
14 class QwtInterval;
15 
16 namespace Isis {
17  class Cube;
18 
27  class ScatterPlotData : public QwtRasterData {
28  public:
29  ScatterPlotData(Cube *xCube, int xCubeBand, int xBinCount,
30  Cube *yCube, int yCubeBand, int yBinCount,
31  QwtInterval sampleRange, QwtInterval lineRange);
32  ScatterPlotData(const ScatterPlotData &other);
33 
35  virtual QwtRasterData *copy() const;
36  virtual double value(double x, double y) const;
37 
38  double xCubeMin() const;
39  double xCubeMax() const;
40  double yCubeMin() const;
41  double yCubeMax() const;
42 
43  void swap(ScatterPlotData &other);
44 
45  QPair<double, double> binXY(int binIndex) const;
46  int binCount(int binIndex) const;
47  int numberOfBins() const;
48 
49  QVector<double> discreteXValues() const;
50 
51  void alarm(double x, double y);
52  void clearAlarms();
53 
54  QRectF pixelHint(const QRectF &area) const;
55 
57 
58  private:
59  int binCount(int xIndex, int yIndex) const;
60  int binIndex(int xIndex, int yIndex) const;
61  int binIndex(double x, double y) const;
62  QPair<int, int> binXYIndices(int binIndex) const;
63  QPair<int, int> binXYIndices(double x, double y) const;
64 
65  QScopedPointer<Stretch> m_xDnToBinStretch;
66  QScopedPointer<Stretch> m_yDnToBinStretch;
67 
72  QScopedPointer< QVector< QVector<int> > > m_counts;
73 
76 
80  QScopedPointer< QMap<int, bool> > m_alarmedBins;
81 
83  double m_xCubeMin;
85  double m_xCubeMax;
87  double m_yCubeMin;
89  double m_yCubeMax;
90  };
91 };
92 
93 #endif