Qwt User's Guide  6.1.6
QwtRasterData Class Referenceabstract

QwtRasterData defines an interface to any type of raster data. More...

#include <qwt_raster_data.h>

Inheritance diagram for QwtRasterData:

Public Types

enum  ConrecFlag { IgnoreAllVerticesOnLevel = 0x01, IgnoreOutOfRange = 0x02 }
 Flags to modify the contour algorithm. More...
 
typedef QMap< double, QPolygonF > ContourLines
 Contour lines.
 
typedef QFlags< ConrecFlagConrecFlags
 Flags to modify the contour algorithm.
 

Public Member Functions

 QwtRasterData ()
 Constructor.
 
virtual ~QwtRasterData ()
 Destructor.
 
virtual void setInterval (Qt::Axis, const QwtInterval &)
 
const QwtIntervalinterval (Qt::Axis) const
 
virtual QRectF pixelHint (const QRectF &) const
 Pixel hint. More...
 
virtual void initRaster (const QRectF &, const QSize &raster)
 Initialize a raster. More...
 
virtual void discardRaster ()
 Discard a raster. More...
 
virtual double value (double x, double y) const =0
 
virtual ContourLines contourLines (const QRectF &rect, const QSize &raster, const QList< double > &levels, ConrecFlags) const
 

Detailed Description

QwtRasterData defines an interface to any type of raster data.

QwtRasterData is an abstract interface, that is used by QwtPlotRasterItem to find the values at the pixels of its raster.

Often a raster item is used to display values from a matrix. Then the derived raster data class needs to implement some sort of resampling, that maps the raster of the matrix into the requested raster of the raster item ( depending on resolution and scales of the canvas ).

Member Enumeration Documentation

◆ ConrecFlag

Flags to modify the contour algorithm.

Enumerator
IgnoreAllVerticesOnLevel 

Ignore all vertices on the same level.

IgnoreOutOfRange 

Ignore all values, that are out of range.

Member Function Documentation

◆ contourLines()

QwtRasterData::ContourLines QwtRasterData::contourLines ( const QRectF &  rect,
const QSize &  raster,
const QList< double > &  levels,
ConrecFlags  flags 
) const
virtual

Calculate contour lines

Parameters
rectBounding rectangle for the contour lines
rasterNumber of data pixels of the raster data
levelsList of limits, where to insert contour lines
flagsFlags to customize the contouring algorithm
Returns
Calculated contour lines

An adaption of CONREC, a simple contouring algorithm. http://local.wasp.uwa.edu.au/~pbourke/papers/conrec/

◆ discardRaster()

void QwtRasterData::discardRaster ( )
virtual

Discard a raster.

After the composition of an image QwtPlotSpectrogram calls discardRaster().

The default implementation does nothing, but if data has been loaded in initRaster(), it could deleted now.

See also
initRaster(), value()

◆ initRaster()

void QwtRasterData::initRaster ( const QRectF &  area,
const QSize &  raster 
)
virtual

Initialize a raster.

Before the composition of an image QwtPlotSpectrogram calls initRaster(), announcing the area and its resolution that will be requested.

The default implementation does nothing, but for data sets that are stored in files, it might be good idea to reimplement initRaster(), where the data is resampled and loaded into memory.

Parameters
areaArea of the raster
rasterNumber of horizontal and vertical pixels
See also
initRaster(), value()

◆ interval()

const QwtInterval & QwtRasterData::interval ( Qt::Axis  axis) const
inline
Returns
Bounding interval for a axis
See also
setInterval

◆ pixelHint()

QRectF QwtRasterData::pixelHint ( const QRectF &  area) const
virtual

Pixel hint.

pixelHint() returns the geometry of a pixel, that can be used to calculate the resolution and alignment of the plot item, that is representing the data.

Width and height of the hint need to be the horizontal and vertical distances between 2 neighbored points. The center of the hint has to be the position of any point ( it doesn't matter which one ).

An empty hint indicates, that there are values for any detail level.

Limiting the resolution of the image might significantly improve the performance and heavily reduce the amount of memory when rendering a QImage from the raster data.

The default implementation returns an empty rectangle recommending to render in target device ( f.e. screen ) resolution.

Parameters
areaIn most implementations the resolution of the data doesn't depend on the requested area.
Returns
Bounding rectangle of a pixel

Reimplemented in QwtMatrixRasterData.

◆ setInterval()

void QwtRasterData::setInterval ( Qt::Axis  axis,
const QwtInterval interval 
)
virtual

Set the bounding interval for the x, y or z coordinates.

Parameters
axisAxis
intervalBounding interval
See also
interval()

Reimplemented in QwtMatrixRasterData.

◆ value()

virtual double QwtRasterData::value ( double  x,
double  y 
) const
pure virtual
Returns
the value at a raster position
Parameters
xX value in plot coordinates
yY value in plot coordinates

Implemented in QwtMatrixRasterData.