QwtPlotSpectrogram Class Reference

A plot item, which displays a spectrogram. More...

#include <qwt_plot_spectrogram.h>

Inheritance diagram for QwtPlotSpectrogram:
Inheritance graph
[legend]

List of all members.

Public Types

enum  DisplayMode {
  ImageMode = 1,
  ContourMode = 2
}

Public Member Functions

 QwtPlotSpectrogram (const QString &title=QString::null)
virtual ~QwtPlotSpectrogram ()
void setRenderThreadCount (uint numThreads)
uint renderThreadCount () const
void setDisplayMode (DisplayMode, bool on=true)
bool testDisplayMode (DisplayMode) const
void setData (QwtRasterData *data)
const QwtRasterDatadata () const
QwtRasterDatadata ()
void setColorMap (QwtColorMap *)
const QwtColorMapcolorMap () const
virtual QwtInterval interval (Qt::Axis) const
virtual QRectF pixelHint (const QRectF &) const
void setDefaultContourPen (const QPen &)
QPen defaultContourPen () const
virtual QPen contourPen (double level) const
void setConrecAttribute (QwtRasterData::ConrecAttribute, bool on)
bool testConrecAttribute (QwtRasterData::ConrecAttribute) const
void setContourLevels (const QList< double > &)
QList< double > contourLevels () const
virtual int rtti () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &rect) const

Protected Member Functions

virtual QImage renderImage (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &area, const QSize &imageSize) const
virtual QSize contourRasterSize (const QRectF &, const QRect &) const
virtual QwtRasterData::ContourLines renderContourLines (const QRectF &rect, const QSize &raster) const
virtual void drawContourLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &lines) const
void renderTile (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &imageRect, QImage *image) const

Detailed Description

A plot item, which displays a spectrogram.

A spectrogram displays threedimenional data, where the 3rd dimension ( the intensity ) is displayed using colors. The colors are calculated from the values using a color map.

In ContourMode contour lines are painted for the contour levels.

spectrogram3.png
See also:
QwtRasterData, QwtColorMap

Member Enumeration Documentation

The display mode controls how the raster data will be represented.

  • ImageMode
    The values are mapped to colors using a color map.
  • ContourMode
    The data is displayed using contour lines

When both modes are enabled the contour lines are painted on top of the spectrogram. The default setting enables ImageMode.

See also:
setDisplayMode(), testDisplayMode()

Constructor & Destructor Documentation

QwtPlotSpectrogram::QwtPlotSpectrogram ( const QString &  title = QString::null  )  [explicit]

Sets the following item attributes:

  • QwtPlotItem::AutoScale: true
  • QwtPlotItem::Legend: false

The z value is initialized by 8.0.

Parameters:
title Title
See also:
QwtPlotItem::setItemAttribute(), QwtPlotItem::setZ()
QwtPlotSpectrogram::~QwtPlotSpectrogram (  )  [virtual]

Destructor.


Member Function Documentation

const QwtColorMap * QwtPlotSpectrogram::colorMap (  )  const
Returns:
Color Map used for mapping the intensity values to colors
See also:
setColorMap()
QList< double > QwtPlotSpectrogram::contourLevels (  )  const

Return the levels of the contour lines.

The levels are sorted in increasing order.

See also:
contourLevels(), renderContourLines(), QwtRasterData::contourLines()
QPen QwtPlotSpectrogram::contourPen ( double  level  )  const [virtual]

Calculate the pen for a contour line.

The color of the pen is the color for level calculated by the color map

Parameters:
level Contour level
Returns:
Pen for the contour line
Note:
contourPen is only used if defaultContourPen().style() == Qt::NoPen
See also:
setDefaultContourPen(), setColorMap(), setContourLevels()
QSize QwtPlotSpectrogram::contourRasterSize ( const QRectF &  area,
const QRect &  rect 
) const [protected, virtual]

Return the raster to be used by the CONREC contour algorithm.

A larger size will improve the precisision of the CONREC algorithm, but will slow down the time that is needed to calculate the lines.

The default implementation returns rect.size() / 2 bounded to the resolution depending on pixelSize().

Parameters:
area Rect, where to calculate the contour lines
rect Rect in pixel coordinates, where to paint the contour lines
Returns:
Raster to be used by the CONREC contour algorithm.
Note:
The size will be bounded to rect.size().
See also:
drawContourLines(), QwtRasterData::contourLines()
QwtRasterData * QwtPlotSpectrogram::data (  ) 
Returns:
Spectrogram data
See also:
setData()
const QwtRasterData * QwtPlotSpectrogram::data (  )  const
Returns:
Spectrogram data
See also:
setData()
QPen QwtPlotSpectrogram::defaultContourPen (  )  const
Returns:
Default contour pen
See also:
setDefaultContourPen()
void QwtPlotSpectrogram::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect 
) const [virtual]

Draw the spectrogram.

Parameters:
painter Painter
xMap Maps x-values into pixel coordinates.
yMap Maps y-values into pixel coordinates.
canvasRect Contents rect of the canvas in painter coordinates
See also:
setDisplayMode(), renderImage(), QwtPlotRasterItem::draw(), drawContourLines()

Reimplemented from QwtPlotRasterItem.

void QwtPlotSpectrogram::drawContourLines ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QwtRasterData::ContourLines &  contourLines 
) const [protected, virtual]

Paint the contour lines

Parameters:
painter Painter
xMap Maps x-values into pixel coordinates.
yMap Maps y-values into pixel coordinates.
contourLines Contour lines
See also:
renderContourLines(), defaultContourPen(), contourPen()
QwtInterval QwtPlotSpectrogram::interval ( Qt::Axis  axis  )  const [virtual]
Returns:
Bounding interval for an axis

The default implementation returns the interval of the associated raster data object.

Parameters:
axis X, Y, or Z axis
See also:
QwtRasterData::interval()

Reimplemented from QwtPlotRasterItem.

QRectF QwtPlotSpectrogram::pixelHint ( const QRectF &  area  )  const [virtual]

Pixel hint.

The geometry of a pixel is used to calculated the resolution and alignment of the rendered image.

The default implementation returns data()->pixelHint( rect );

Parameters:
area In most implementations the resolution of the data doesn't depend on the requested area.
Returns:
Bounding rectangle of a pixel
See also:
QwtPlotRasterItem::pixelHint(), QwtRasterData::pixelHint(), render(), renderImage()

Reimplemented from QwtPlotRasterItem.

QwtRasterData::ContourLines QwtPlotSpectrogram::renderContourLines ( const QRectF &  rect,
const QSize &  raster 
) const [protected, virtual]

Calculate contour lines

Parameters:
rect Rectangle, where to calculate the contour lines
raster Raster, used by the CONREC algorithm
See also:
contourLevels(), setConrecAttribute(), QwtRasterData::contourLines()
QImage QwtPlotSpectrogram::renderImage ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  area,
const QSize &  imageSize 
) const [protected, virtual]

Render an image from data and color map.

For each pixel of rect the intensity is mapped into a color.

Parameters:
xMap X-Scale Map
yMap Y-Scale Map
area Requested area for the image in scale coordinates
imageSize Size of the requested image
Returns:
A QImage::Format_Indexed8 or QImage::Format_ARGB32 depending on the color map.
See also:
QwtRasterData::intensity(), QwtColorMap::rgb(), QwtColorMap::colorIndex()

Implements QwtPlotRasterItem.

uint QwtPlotSpectrogram::renderThreadCount (  )  const
Returns:
Number of threads to be used for rendering. If numThreads is set to 0, the system specific ideal thread count is used.
Warning:
Rendering in multiple threads is only supported for Qt >= 4.4
See also:
setRenderThreadCount(), renderImage(), renderTile()
void QwtPlotSpectrogram::renderTile ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  tile,
QImage *  image 
) const [protected]

Render a tile of an image.

Rendering in tiles can be used to composite an image in parallel threads.

Parameters:
xMap X-Scale Map
yMap Y-Scale Map
tile Geometry of the tile in image coordinates
image Image to be rendered
int QwtPlotSpectrogram::rtti (  )  const [virtual]
Returns:
QwtPlotItem::Rtti_PlotSpectrogram

Reimplemented from QwtPlotItem.

void QwtPlotSpectrogram::setColorMap ( QwtColorMap colorMap  ) 

Change the color map

Often it is useful to display the mapping between intensities and colors as an additional plot axis, showing a color bar.

Parameters:
colorMap Color Map
See also:
colorMap(), QwtScaleWidget::setColorBarEnabled(), QwtScaleWidget::setColorMap()
void QwtPlotSpectrogram::setConrecAttribute ( QwtRasterData::ConrecAttribute  attribute,
bool  on 
)

Modify an attribute of the CONREC algorithm, used to calculate the contour lines.

Parameters:
attribute CONREC attribute
on On/Off
See also:
testConrecAttribute(), renderContourLines(), QwtRasterData::contourLines()
void QwtPlotSpectrogram::setContourLevels ( const QList< double > &  levels  ) 

Set the levels of the contour lines

Parameters:
levels Values of the contour levels
See also:
contourLevels(), renderContourLines(), QwtRasterData::contourLines()
Note:
contourLevels returns the same levels but sorted.
void QwtPlotSpectrogram::setData ( QwtRasterData data  ) 

Set the data to be displayed

Parameters:
data Spectrogram Data
See also:
data()
void QwtPlotSpectrogram::setDefaultContourPen ( const QPen &  pen  ) 

Set the default pen for the contour lines.

If the spectrogram has a valid default contour pen a contour line is painted using the default contour pen. Otherwise (pen.style() == Qt::NoPen) the pen is calculated for each contour level using contourPen().

See also:
defaultContourPen(), contourPen()
void QwtPlotSpectrogram::setDisplayMode ( DisplayMode  mode,
bool  on = true 
)

The display mode controls how the raster data will be represented.

Parameters:
mode Display mode
on On/Off

The default setting enables ImageMode.

See also:
DisplayMode, displayMode()
void QwtPlotSpectrogram::setRenderThreadCount ( uint  numThreads  ) 

Rendering an image from the raster data can often be done parallel on a multicore system.

Parameters:
numThreads Number of threads to be used for rendering. If numThreads is set to 0, the system specific ideal thread count is used.

The default thread count is 1 ( = no additional threads )

Warning:
Rendering in multiple threads is only supported for Qt >= 4.4
See also:
renderThreadCount(), renderImage(), renderTile()
bool QwtPlotSpectrogram::testConrecAttribute ( QwtRasterData::ConrecAttribute  attribute  )  const

Test an attribute of the CONREC algorithm, used to calculate the contour lines.

Parameters:
attribute CONREC attribute
Returns:
true, is enabled
See also:
setConrecAttribute(), renderContourLines(), QwtRasterData::contourLines()
bool QwtPlotSpectrogram::testDisplayMode ( DisplayMode  mode  )  const

The display mode controls how the raster data will be represented.

Parameters:
mode Display mode
Returns:
true if mode is enabled
Generated on Sun Nov 21 12:01:47 2010 for Qwt User's Guide by  doxygen 1.6.3