QGIS/external/qwt-6.3.0/qwt_matrix_raster_data.h
Juergen E. Fischer 33fc476d89 * replace external qwtpolar with qwt 6.3
* require qwt >=6.2 (and fallback to internal 6.3 if system's qwt doesn't suffice)
* debian doesn't have qwt for Qt6 and won't have it for trixie
2025-07-23 07:11:51 +10:00

85 lines
2.3 KiB
C++

/******************************************************************************
* 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
#include "qwt_global.h"
#include "qwt_raster_data.h"
#if QT_VERSION < 0x060000
template< typename T > class QVector;
#endif
/*!
\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,
/*!
Interpolate the value from the 16 surrounding values in the
matrix using hermite bicubic interpolation
*/
BicubicInterpolation
};
QwtMatrixRasterData();
virtual ~QwtMatrixRasterData();
void setResampleMode(ResampleMode mode);
ResampleMode resampleMode() const;
void setInterval( Qt::Axis, const QwtInterval& );
virtual QwtInterval interval( Qt::Axis axis) const QWT_OVERRIDE QWT_FINAL;
void setValueMatrix( const QVector< double >& values, int numColumns );
const QVector< double > valueMatrix() const;
void setValue( int row, int col, double value );
int numColumns() const;
int numRows() const;
virtual QRectF pixelHint( const QRectF& ) const QWT_OVERRIDE;
virtual double value( double x, double y ) const QWT_OVERRIDE;
private:
void update();
class PrivateData;
PrivateData* m_data;
};
#endif