1 #ifndef ScatterPlotData_h 
    2 #define ScatterPlotData_h 
    4 #include <qwt_raster_data.h> 
    6 #include <QScopedPointer> 
   11 template <
typename A, 
typename B> 
struct QPair;
 
   12 template <
typename T> 
class QVector;
 
   31                       Cube *yCube, 
int yCubeBand, 
int yBinCount,
 
   32                       QwtInterval sampleRange, QwtInterval lineRange);
 
   37       virtual double value(
double x, 
double y) 
const;
 
   52       void alarm(
double x, 
double y);
 
   55       QRectF 
pixelHint(
const QRectF &area) 
const;
 
   60       int binCount(
int xIndex, 
int yIndex) 
const;
 
   61       int binIndex(
int xIndex, 
int yIndex) 
const;
 
   62       int binIndex(
double x, 
double y) 
const;
 
   73       QScopedPointer< QVector< QVector<int> > > 
m_counts;
 
int m_maxCount
The maximum value in m_counts, stored for efficiency. 
 
QVector< double > discreteXValues() const 
Get a list of all of the x-bin center values for this scatter plot. 
 
ScatterPlotData(Cube *xCube, int xCubeBand, int xBinCount, Cube *yCube, int yCubeBand, int yBinCount, QwtInterval sampleRange, QwtInterval lineRange)
ScatterPlotDataConstructor. 
 
virtual double value(double x, double y) const 
This gets called every time the scatter plot is re-drawn. 
 
double yCubeMax() const 
Return the max DN value for the y-axis cube's data range. 
 
int numberOfBins() const 
Get the total number of bins (bin count in x * bin count in y). 
 
double m_xCubeMax
The maximum DN value for the x cube. 
 
double m_yCubeMin
The minimum DN value for the y cube. 
 
double xCubeMin() const 
Return the min DN value for the x-axis cube's data range. 
 
int binIndex(int xIndex, int yIndex) const 
Get the single-index position given an x/y index position. 
 
QPair< int, int > binXYIndices(int binIndex) const 
Get the 2D index index position given a 1D (flat) index position. 
 
~ScatterPlotData()
Destructor. 
 
double yCubeMin() const 
Return the min DN value for the y-axis cube's data range. 
 
QRectF pixelHint(const QRectF &area) const 
This is a hint given to qwt for how to render a pixel in the spectrogram. 
 
double xCubeMax() const 
Return the max DN value for the y-axis cube's data range. 
 
void alarm(double x, double y)
Alarm the bin (highlight it) at the given x/y DN value. 
 
int binCount(int binIndex) const 
Get the count (number of values) which fall into the bin at index. 
 
double m_yCubeMax
The maximum DN value for the y cube. 
 
virtual QwtRasterData * copy() const 
Returns a copy of the ScatterPlotData object. 
 
QScopedPointer< Stretch > m_xDnToBinStretch
Stretch 1. 
 
QScopedPointer< QVector< QVector< int > > > m_counts
The bin counts stored by 2D (x/y) index position. 
 
This is the QwtRasterData for a scatter plot. 
 
ScatterPlotData & operator=(const ScatterPlotData &other)
Take the data from other and copy it into this. 
 
void clearAlarms()
Forget all alarmed bins (viewport->plot). 
 
QScopedPointer< QMap< int, bool > > m_alarmedBins
map from bin index to alarm state (true for alarmed) 
 
void swap(ScatterPlotData &other)
This is part of the copy-and-swap paradigm. 
 
QScopedPointer< Stretch > m_yDnToBinStretch
Stretch 2. 
 
QPair< double, double > binXY(int binIndex) const 
Get the center X/Y Dn values for the bin at index. 
 
IO Handler for Isis Cubes. 
 
double m_xCubeMin
The minimum DN value for the x cube.