# QwtPlotSpectrogram Class Reference

Inheritance diagram for QwtPlotSpectrogram:

[legend]
Collaboration diagram for QwtPlotSpectrogram:

[legend]
List of all members.

## 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.

See also:
  QwtRasterData, QwtColorMap

Definition at line 35 of file qwt_plot_spectrogram.h.

## Public Types

enum | DisplayMode { AlwaysOff, AlwaysOn, ActiveOnly, ImageMode = 1, ContourMode = 2 }

## Public Member Functions

| QwtPlotSpectrogram (const QString &title=QString::null)
virtual | ~QwtPlotSpectrogram ()
void | setDisplayMode (DisplayMode, bool on=true)
bool | testDisplayMode (DisplayMode) const
void | setData (const QwtRasterData &data)
const QwtRasterData & | data () const
void | setColorMap (const QwtColorMap &)
const QwtColorMap & | colorMap () const
virtual QwtDoubleRect | boundingRect () const
virtual QSize | rasterHint (const QwtDoubleRect &) 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 QwtValueList &)
QwtValueList | contourLevels () const
virtual int | rtti () const
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const

## Protected Member Functions

virtual QImage | renderImage (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &rect) const
virtual QSize | contourRasterSize (const QwtDoubleRect &, const QRect &) const
virtual QwtRasterData::ContourLines | renderContourLines (const QwtDoubleRect &rect, const QSize &raster) const
virtual void | drawContourLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &lines) const

## Member Enumeration Documentation

enum QwtPlotSpectrogram::DisplayMode

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()

Definition at line 51 of file qwt_plot_spectrogram.h.

## 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()

Definition at line 134 of file qwt_plot_spectrogram.cpp.

References QwtPlotItem::setItemAttribute(), and QwtPlotItem::setZ().

QwtPlotSpectrogram::~QwtPlotSpectrogram | ( |  | ) | `[virtual]`

Destructor.

Definition at line 146 of file qwt_plot_spectrogram.cpp.

## Member Function Documentation

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()

Definition at line 167 of file qwt_plot_spectrogram.cpp.

References QwtPlotItem::itemChanged().

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

Definition at line 186 of file qwt_plot_spectrogram.cpp.

void QwtPlotSpectrogram::setData | ( | const QwtRasterData & | data | ) |

Set the data to be displayed

Parameters:

  | data | Spectrogram Data

See also:
  data()

Definition at line 342 of file qwt_plot_spectrogram.cpp.

References QwtRasterData::copy(), data(), QwtPlotRasterItem::invalidateCache(), and QwtPlotItem::itemChanged().

const QwtRasterData & QwtPlotSpectrogram::data | ( |  | ) | const

Returns:
  Spectrogram data

See also:
  setData()

Definition at line 355 of file qwt_plot_spectrogram.cpp.

Referenced by setData().

void QwtPlotSpectrogram::setColorMap | ( | const 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()

Definition at line 202 of file qwt_plot_spectrogram.cpp.

References colorMap(), QwtColorMap::copy(), QwtPlotRasterItem::invalidateCache(), and QwtPlotItem::itemChanged().

const QwtColorMap & QwtPlotSpectrogram::colorMap | ( |  | ) | const

Returns:
  Color Map used for mapping the intensity values to colors

See also:
  setColorMap()

Definition at line 215 of file qwt_plot_spectrogram.cpp.

Referenced by setColorMap().

QwtDoubleRect QwtPlotSpectrogram::boundingRect | ( |  | ) | const`[virtual]`

Returns:
  Bounding rect of the data

See also:
  QwtRasterData::boundingRect

Reimplemented from QwtPlotItem.

Definition at line 364 of file qwt_plot_spectrogram.cpp.

Referenced by draw().

QSize QwtPlotSpectrogram::rasterHint | ( | const QwtDoubleRect & | rect | ) | const`[virtual]`

Returns the recommended raster for a given rect.

F.e the raster hint is used to limit the resolution of the image that is rendered.

Parameters:

  | rect | Rect for the raster hint

Returns:
  data().rasterHint(rect)

Reimplemented from QwtPlotRasterItem.

Definition at line 378 of file qwt_plot_spectrogram.cpp.

Referenced by contourRasterSize().

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

Definition at line 230 of file qwt_plot_spectrogram.cpp.

References QwtPlotItem::itemChanged().

QPen QwtPlotSpectrogram::defaultContourPen | ( |  | ) | const

Returns:
  Default contour pen

See also:
  setDefaultContourPen

Definition at line 243 of file qwt_plot_spectrogram.cpp.

Referenced by drawContourLines().

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

Definition at line 259 of file qwt_plot_spectrogram.cpp.

Referenced by drawContourLines().

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

Definition at line 276 of file qwt_plot_spectrogram.cpp.

References QwtPlotItem::itemChanged().

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

Definition at line 299 of file qwt_plot_spectrogram.cpp.

void QwtPlotSpectrogram::setContourLevels | ( | const QwtValueList & | 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.

Definition at line 313 of file qwt_plot_spectrogram.cpp.

References QwtPlotItem::itemChanged().

QwtValueList QwtPlotSpectrogram::contourLevels | ( |  | ) | const

Return the levels of the contour lines.

The levels are sorted in increasing order.

See also:
  contourLevels, renderContourLines, QwtRasterData::contourLines

Definition at line 331 of file qwt_plot_spectrogram.cpp.

int QwtPlotSpectrogram::rtti | ( |  | ) | const`[virtual]`

Returns:
  QwtPlotItem::Rtti_PlotSpectrogram

Reimplemented from QwtPlotItem.

Definition at line 152 of file qwt_plot_spectrogram.cpp.

void QwtPlotSpectrogram::draw | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QRect & | 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.

Definition at line 615 of file qwt_plot_spectrogram.cpp.

References boundingRect(), contourRasterSize(), QwtPlotRasterItem::draw(), drawContourLines(), QwtPlotItem::invTransform(), renderContourLines(), and QwtPlotItem::transform().

QImage QwtPlotSpectrogram::renderImage | ( | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QwtDoubleRect & | area |
| ) |  |  | const`[protected, virtual]`

Render an image from the data and color map.

The area is translated into a rect of the paint device. For each pixel of this rect the intensity is mapped into a color.

Parameters:

  | xMap | X-Scale Map
  | yMap | Y-Scale Map
  | area | Area that should be rendered in scale coordinates.

Returns:
  A QImage::Format_Indexed8 or QImage::Format_ARGB32 depending on the color map.

See also:
  QwtRasterData::intensity(), QwtColorMap::rgb(), QwtColorMap::colorIndex()

Implements QwtPlotRasterItem.

Definition at line 400 of file qwt_plot_spectrogram.cpp.

References QwtScaleMap::invTransform(), QwtScaleMap::p1(), QwtScaleMap::p2(), QwtScaleMap::s1(), QwtScaleMap::s2(), QwtScaleMap::setPaintInterval(), QwtScaleMap::setScaleInterval(), and QwtPlotItem::transform().

QSize QwtPlotSpectrogram::contourRasterSize | ( | const QwtDoubleRect & | 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 data().rasterHint().

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

Definition at line 529 of file qwt_plot_spectrogram.cpp.

References rasterHint().

Referenced by draw().

QwtRasterData::ContourLines QwtPlotSpectrogram::renderContourLines | ( | const QwtDoubleRect & | 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

Definition at line 549 of file qwt_plot_spectrogram.cpp.

Referenced by draw().

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

Definition at line 566 of file qwt_plot_spectrogram.cpp.

References contourPen(), defaultContourPen(), QwtPainter::drawLine(), and QwtScaleMap::transform().

Referenced by draw().