Isis Developer Reference
ScatterPlotData.h
Go to the documentation of this file.
1#ifndef ScatterPlotData_h
2#define ScatterPlotData_h
3
4#include <qwt_matrix_raster_data.h>
5
6#include <QScopedPointer>
7#include <QVector>
8
9#include "Stretch.h"
10
11template <typename A, typename B> struct QPair;
12template <typename T> class QVector;
13
14class QwtInterval;
15
16namespace Isis {
17 class Cube;
18
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
50 QVector<double> discreteXValues() const;
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
IO Handler for Isis Cubes.
Definition Cube.h:168
This is the QwtRasterData for a scatter plot.
Definition ScatterPlotData.h:28
~ScatterPlotData()
Destructor.
Definition ScatterPlotData.cpp:128
QVector< double > discreteXValues() const
Get a list of all of the x-bin center values for this scatter plot.
Definition ScatterPlotData.cpp:296
ScatterPlotData & operator=(const ScatterPlotData &other)
Take the data from other and copy it into this.
Definition ScatterPlotData.cpp:364
void clearAlarms()
Forget all alarmed bins (viewport->plot).
Definition ScatterPlotData.cpp:332
double xCubeMax() const
Return the max DN value for the y-axis cube's data range.
Definition ScatterPlotData.cpp:181
int binCount(int binIndex) const
Get the count (number of values) which fall into the bin at index.
Definition ScatterPlotData.cpp:268
double yCubeMin() const
Return the min DN value for the y-axis cube's data range.
Definition ScatterPlotData.cpp:191
ScatterPlotData(Cube *xCube, int xCubeBand, int xBinCount, Cube *yCube, int yCubeBand, int yBinCount, QwtInterval sampleRange, QwtInterval lineRange)
ScatterPlotDataConstructor.
Definition ScatterPlotData.cpp:28
double xCubeMin() const
Return the min DN value for the x-axis cube's data range.
Definition ScatterPlotData.cpp:171
virtual double value(double x, double y) const
This gets called every time the scatter plot is re-drawn.
Definition ScatterPlotData.cpp:151
void swap(ScatterPlotData &other)
This is part of the copy-and-swap paradigm.
Definition ScatterPlotData.cpp:211
double yCubeMax() const
Return the max DN value for the y-axis cube's data range.
Definition ScatterPlotData.cpp:201
QPair< double, double > binXY(int binIndex) const
Get the center X/Y Dn values for the bin at index.
Definition ScatterPlotData.cpp:231
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:343
void alarm(double x, double y)
Alarm the bin (highlight it) at the given x/y DN value.
Definition ScatterPlotData.cpp:322
int numberOfBins() const
Get the total number of bins (bin count in x * bin count in y).
Definition ScatterPlotData.cpp:279
virtual QwtRasterData * copy() const
Returns a copy of the ScatterPlotData object.
Definition ScatterPlotData.cpp:137
This is free and unencumbered software released into the public domain.
Definition Calculator.h:18
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