summaryrefslogtreecommitdiff
path: root/src/libpcp_qwt/src/qwt_matrix_raster_data.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libpcp_qwt/src/qwt_matrix_raster_data.h')
-rw-r--r--src/libpcp_qwt/src/qwt_matrix_raster_data.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/libpcp_qwt/src/qwt_matrix_raster_data.h b/src/libpcp_qwt/src/qwt_matrix_raster_data.h
new file mode 100644
index 0000000..a8940f8
--- /dev/null
+++ b/src/libpcp_qwt/src/qwt_matrix_raster_data.h
@@ -0,0 +1,71 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * Qwt Widget Library
+ * Copyright (C) 1997 Josef Wilgen
+ * Copyright (C) 2002 Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_MATRIX_RASTER_DATA_H
+#define QWT_MATRIX_RASTER_DATA_H 1
+
+#include "qwt_global.h"
+#include "qwt_raster_data.h"
+#include <qvector.h>
+
+/*!
+ \brief A class representing a matrix of values as raster data
+
+ QwtMatrixRasterData implements an interface for a matrix of
+ equidistant values, that can be used by a QwtPlotRasterItem.
+ It implements a couple of resampling algorithms, to provide
+ values for positions, that or not on the value matrix.
+*/
+class QWT_EXPORT QwtMatrixRasterData: public QwtRasterData
+{
+public:
+ /*!
+ \brief Resampling algorithm
+ The default setting is NearestNeighbour;
+ */
+ enum ResampleMode
+ {
+ /*!
+ Return the value from the matrix, that is nearest to the
+ the requested position.
+ */
+ NearestNeighbour,
+
+ /*!
+ Interpolate the value from the distances and values of the
+ 4 surrounding values in the matrix,
+ */
+ BilinearInterpolation
+ };
+
+ QwtMatrixRasterData();
+ virtual ~QwtMatrixRasterData();
+
+ void setResampleMode(ResampleMode mode);
+ ResampleMode resampleMode() const;
+
+ virtual void setInterval( Qt::Axis, const QwtInterval & );
+ void setValueMatrix( const QVector<double> &values, size_t numColumns );
+
+ const QVector<double> valueMatrix() const;
+ size_t numColumns() const;
+ size_t numRows() const;
+
+ virtual QRectF pixelHint( const QRectF & ) const;
+
+ virtual double value( double x, double y ) const;
+
+private:
+ void update();
+
+ class PrivateData;
+ PrivateData *d_data;
+};
+
+#endif