A class, which displays raster data. More...
#include <qwt_plot_rasteritem.h>
Public Types | |
enum | CachePolicy { NoCache, PaintCache } |
enum | PaintAttribute { PaintInDeviceResolution = 1 } |
Public Member Functions | |
QwtPlotRasterItem (const QString &title=QString::null) | |
QwtPlotRasterItem (const QwtText &title) | |
virtual | ~QwtPlotRasterItem () |
void | setPaintAttribute (PaintAttribute, bool on=true) |
bool | testPaintAttribute (PaintAttribute) const |
void | setAlpha (int alpha) |
int | alpha () const |
void | setCachePolicy (CachePolicy) |
CachePolicy | cachePolicy () const |
void | invalidateCache () |
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &rect) const |
virtual QRectF | pixelHint (const QRectF &) const |
virtual QwtInterval | interval (Qt::Axis) const |
virtual QRectF | boundingRect () const |
Protected Member Functions | |
virtual QImage | renderImage (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &area, const QSize &imageSize) const =0 |
virtual QwtScaleMap | imageMap (Qt::Orientation, const QwtScaleMap &map, const QRectF &area, const QSize &imageSize, double pixelSize) const |
A class, which displays raster data.
Raster data is a grid of pixel values, that can be represented as a QImage. It is used for many types of information like spectrograms, cartograms, geographical maps ...
Often a plot has several types of raster data organized in layers. ( f.e a geographical map, with weather statistics ). Using setAlpha() raster items can be stacked easily.
QwtPlotRasterItem is only implemented for images of the following formats: QImage::Format_Indexed8, QImage::Format_ARGB32.
The default policy is NoCache
Attributes to modify the drawing algorithm.
The default setting enables PaintInDeviceResolution
QwtPlotRasterItem::QwtPlotRasterItem | ( | const QString & | title = QString::null |
) | [explicit] |
Constructor.
QwtPlotRasterItem::QwtPlotRasterItem | ( | const QwtText & | title | ) | [explicit] |
Constructor.
QwtPlotRasterItem::~QwtPlotRasterItem | ( | ) | [virtual] |
Destructor.
int QwtPlotRasterItem::alpha | ( | ) | const |
QRectF QwtPlotRasterItem::boundingRect | ( | ) | const [virtual] |
Reimplemented from QwtPlotItem.
QwtPlotRasterItem::CachePolicy QwtPlotRasterItem::cachePolicy | ( | ) | const |
void QwtPlotRasterItem::draw | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
const QRectF & | canvasRect | |||
) | const [virtual] |
Draw the raster data.
painter | Painter | |
xMap | X-Scale Map | |
yMap | Y-Scale Map | |
canvasRect | Contents rect of the plot canvas |
Implements QwtPlotItem.
Reimplemented in QwtPlotSpectrogram.
QwtScaleMap QwtPlotRasterItem::imageMap | ( | Qt::Orientation | orientation, | |
const QwtScaleMap & | map, | |||
const QRectF & | area, | |||
const QSize & | imageSize, | |||
double | pixelSize | |||
) | const [protected, virtual] |
Calculate a scale map for painting to an image.
orientation | Orientation, Qt::Horizontal means a X axis | |
map | Scale map for rendering the plot item | |
area | Area to be painted on the image | |
imageSize | Image size | |
pixelSize | Width/Height of a data pixel |
QwtInterval QwtPlotRasterItem::interval | ( | Qt::Axis | ) | const [virtual] |
This method is intended to be reimplemented by derived classes. The default implementation returns an invalid interval.
axis | X, Y, or Z axis |
Reimplemented in QwtPlotSpectrogram.
void QwtPlotRasterItem::invalidateCache | ( | ) |
Invalidate the paint cache
QRectF QwtPlotRasterItem::pixelHint | ( | const QRectF & | ) | const [virtual] |
Pixel hint.
The geometry of a pixel is used to calculated the resolution and alignment of the rendered image.
Width and height of the hint need to be the horizontal and vertical distances between 2 neighboured points. The center of the hint has to be the position of any point ( it doesn't matter which one ).
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 (QRectF()), meaning, that the image will be rendered in target device ( f.e screen ) resolution.
area | In most implementations the resolution of the data doesn't depend on the requested area. |
Reimplemented in QwtPlotSpectrogram.
virtual QImage QwtPlotRasterItem::renderImage | ( | const QwtScaleMap & | xMap, | |
const QwtScaleMap & | yMap, | |||
const QRectF & | area, | |||
const QSize & | imageSize | |||
) | const [protected, pure virtual] |
Render an image.
An implementation of render() might iterate over all pixels of imageRect. Each pixel has to be translated into the corresponding position in scale coordinates using the maps. This position can be used to look up a value in a implementation specific way and to map it into a color.
xMap | X-Scale Map | |
yMap | Y-Scale Map | |
area | Requested area for the image in scale coordinates | |
imageSize | Requested size of the image |
Implemented in QwtPlotSpectrogram.
void QwtPlotRasterItem::setAlpha | ( | int | alpha | ) |
Set an alpha value for the raster data.
Often a plot has several types of raster data organized in layers. ( f.e a geographical map, with weather statistics ). Using setAlpha() raster items can be stacked easily.
The alpha value is a value [0, 255] to control the transparency of the image. 0 represents a fully transparent color, while 255 represents a fully opaque color.
alpha | Alpha value |
The default alpha value is -1.
void QwtPlotRasterItem::setCachePolicy | ( | QwtPlotRasterItem::CachePolicy | policy | ) |
Change the cache policy
The default policy is NoCache
policy | Cache policy |
void QwtPlotRasterItem::setPaintAttribute | ( | PaintAttribute | attribute, | |
bool | on = true | |||
) |
Specify an attribute how to draw the raster item
attribute | Paint attribute | |
on | On/Off /sa PaintAttribute, testPaintAttribute() |
bool QwtPlotRasterItem::testPaintAttribute | ( | PaintAttribute | attribute | ) | const |
Return the current paint attributes.