QWT 7.0.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
QwtPlotVectorField Class Reference

A plot item, that represents a vector field. More...

#include <qwt_plot_vectorfield.h>

Inheritance diagram for QwtPlotVectorField:
QwtPlotSeriesItem QwtSeriesStore< QwtVectorFieldSample > QwtPlotItem QwtAbstractSeriesStore QwtAbstractSeriesStore

Classes

class  PrivateData
 

Public Types

enum  IndicatorOrigin { OriginHead , OriginTail , OriginCenter }
 Depending on the origin the indicator symbol ( usually an arrow ) will be to the position of the corresponding sample. More...
 
enum  PaintAttribute { FilterVectors = 0x01 }
 Attributes to modify the rendering. More...
 
enum  MagnitudeMode { MagnitudeAsColor = 0x01 , MagnitudeAsLength = 0x02 }
 Depending on the MagnitudeMode the magnitude component will have an impact on the attributes of the symbol/arrow. More...
 
- Public Types inherited from QwtPlotItem
enum  RttiValues {
  Rtti_PlotItem = 0 , Rtti_PlotGrid , Rtti_PlotScale , Rtti_PlotLegend ,
  Rtti_PlotMarker , Rtti_PlotCurve , Rtti_PlotSpectroCurve , Rtti_PlotIntervalCurve ,
  Rtti_PlotHistogram , Rtti_PlotSpectrogram , Rtti_PlotGraphic , Rtti_PlotTradingCurve ,
  Rtti_PlotBarChart , Rtti_PlotMultiBarChart , Rtti_PlotShape , Rtti_PlotTextLabel ,
  Rtti_PlotZone , Rtti_PlotVectorField , Rtti_PlotUserItem = 1000
}
 Runtime type information. More...
 
enum  ItemAttribute { Legend = 0x01 , AutoScale = 0x02 , Margins = 0x04 }
 Plot Item Attributes. More...
 
enum  ItemInterest { ScaleInterest = 0x01 , LegendInterest = 0x02 }
 Plot Item Interests/绘图项关注的事件类型 More...
 
enum  RenderHint { RenderAntialiased = 0x1 }
 Render hints. More...
 

Public Member Functions

 QwtPlotVectorField (const QString &title=QString())
 Constructor.
 
 QwtPlotVectorField (const QwtText &title)
 Constructor.
 
virtual ~QwtPlotVectorField ()
 Destructor.
 
void setPaintAttribute (PaintAttribute, bool on=true)
 Specify an attribute how to draw the curve.
 
bool testPaintAttribute (PaintAttribute) const
 
void setMagnitudeMode (MagnitudeMode, bool on=true)
 Specify a mode how to represent the magnitude a n arrow/symbol.
 
bool testMagnitudeMode (MagnitudeMode) const
 
void setSymbol (QwtVectorFieldSymbol *)
 Sets a new arrow symbol (implementation of arrow drawing code).
 
const QwtVectorFieldSymbolsymbol () const
 
void setPen (const QPen &)
 Assign a pen.
 
QPen pen () const
 
void setBrush (const QBrush &)
 Assign a brush.
 
QBrush brush () const
 
void setRasterSize (const QSizeF &)
 Set the raster size used for filtering samples.
 
QSizeF rasterSize () const
 
void setIndicatorOrigin (IndicatorOrigin)
 Set the origin for the symbols/arrows.
 
IndicatorOrigin indicatorOrigin () const
 
void setSamples (const QVector< QwtVectorFieldSample > &)
 Initialize data with an array of samples.
 
void setSamples (QwtVectorFieldData *)
 Assign a series of samples.
 
void setColorMap (QwtColorMap *)
 Change the color map.
 
const QwtColorMapcolorMap () const
 
void setMagnitudeRange (const QwtInterval &)
 Sets the min/max magnitudes to be used for color map lookups.
 
QwtInterval magnitudeRange () const
 
void setMinArrowLength (double)
 Set a minimum for the arrow length of non zero vectors.
 
double minArrowLength () const
 
void setMaxArrowLength (double)
 Set a maximum for the arrow length.
 
double maxArrowLength () const
 
virtual double arrowLength (double magnitude) const
 Computes length of the arrow in screen coordinate units based on its magnitude.
 
virtual QRectF boundingRect () const QWT_OVERRIDE
 
virtual void drawSeries (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const QWT_OVERRIDE
 Draw a subset of the points.
 
virtual int rtti () const QWT_OVERRIDE
 
virtual QwtGraphic legendIcon (int index, const QSizeF &) const QWT_OVERRIDE
 
void setMagnitudeScaleFactor (double factor)
 Set the magnitudeScaleFactor.
 
double magnitudeScaleFactor () const
 
- Public Member Functions inherited from QwtPlotSeriesItem
 QwtPlotSeriesItem (const QString &title=QString())
 Constructor.
 
 QwtPlotSeriesItem (const QwtText &title)
 Constructor.
 
virtual ~QwtPlotSeriesItem ()
 Destructor.
 
void setOrientation (Qt::Orientation)
 Set the orientation of the item.
 
Qt::Orientation orientation () const
 
virtual void draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const QWT_OVERRIDE
 Draw the complete series.
 
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) QWT_OVERRIDE
 Update the item to changes of the axes scale division.
 
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem ()
 Constructor.
 
 QwtPlotItem (const QString &title)
 Constructor.
 
 QwtPlotItem (const QwtText &title)
 Constructor.
 
virtual ~QwtPlotItem ()
 Destroy the QwtPlotItem.
 
void attach (QwtPlot *plot)
 Attach the item to a plot.
 
void detach ()
 This method detaches a QwtPlotItem from any QwtPlot it has been associated with.
 
QwtPlotplot () const
 Return attached plot.
 
void setTitle (const QString &title)
 Set a new title.
 
void setTitle (const QwtText &title)
 Set a new title.
 
const QwtTexttitle () const
 
void setItemAttribute (ItemAttribute, bool on=true)
 Toggle an item attribute.
 
bool testItemAttribute (ItemAttribute) const
 Test an item attribute.
 
void setItemInterest (ItemInterest, bool on=true)
 Toggle an item interest.
 
bool testItemInterest (ItemInterest) const
 Test an item interest.
 
void setRenderHint (RenderHint, bool on=true)
 Toggle an render hint.
 
bool testRenderHint (RenderHint) const
 Test a render hint.
 
void setRenderThreadCount (uint numThreads)
 On multi core systems rendering of certain plot item ( f.e QwtPlotRasterItem ) can be done in parallel in several threads.
 
uint renderThreadCount () const
 
void setLegendIconSize (const QSize &)
 Set the size of the legend icon.
 
QSize legendIconSize () const
 
double z () const
 Plot items are painted in increasing z-order.
 
void setZ (double z)
 Set the z value.
 
void show ()
 Show the item.
 
void hide ()
 Hide the item.
 
virtual void setVisible (bool)
 Show/Hide the item.
 
bool isVisible () const
 
void setAxes (QwtAxisId xAxis, QwtAxisId yAxis)
 Set X and Y axis.
 
void setXAxis (QwtAxisId)
 Set the X axis.
 
QwtAxisId xAxis () const
 Return xAxis.
 
void setYAxis (QwtAxisId)
 Set the Y axis.
 
QwtAxisId yAxis () const
 Return yAxis.
 
virtual void itemChanged ()
 Update the legend and call QwtPlot::autoRefresh() for the parent plot.
 
virtual void legendChanged ()
 Update the legend of the parent plot.
 
virtual void getCanvasMarginHint (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, double &left, double &top, double &right, double &bottom) const
 Calculate a hint for the canvas margin.
 
virtual void updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &)
 Update the item to changes of the legend info.
 
QRectF scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
 Calculate the bounding scale rectangle of 2 maps.
 
QRectF paintRect (const QwtScaleMap &, const QwtScaleMap &) const
 Calculate the bounding paint rectangle of 2 maps.
 
virtual QList< QwtLegendDatalegendData () const
 Return all information, that is needed to represent the item on the legend.
 
- Public Member Functions inherited from QwtAbstractSeriesStore
virtual ~QwtAbstractSeriesStore ()
 Destructor.
 
- Public Member Functions inherited from QwtSeriesStore< QwtVectorFieldSample >
 QwtSeriesStore ()
 Constructor The store contains no series.
 
 ~QwtSeriesStore ()
 Destructor.
 
void setData (QwtSeriesData< QwtVectorFieldSample > *series)
 Assign a series of samples.
 
QwtSeriesData< QwtVectorFieldSample > * data ()
 
const QwtSeriesData< QwtVectorFieldSample > * data () const
 
QwtVectorFieldSample sample (size_t index) const
 
virtual size_t dataSize () const QWT_OVERRIDE
 
virtual QRectF dataRect () const QWT_OVERRIDE
 
virtual void setRectOfInterest (const QRectF &rect) QWT_OVERRIDE
 Set a the "rect of interest" for the series.
 
QwtSeriesData< QwtVectorFieldSample > * swapData (QwtSeriesData< QwtVectorFieldSample > *series)
 Replace a series without deleting the previous one.
 

Protected Member Functions

virtual void drawSymbols (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const
 Draw symbols.
 
virtual void drawSymbol (QPainter *, double x, double y, double vx, double vy) const
 Draw a arrow/symbols at a specific position.
 
virtual void dataChanged () QWT_OVERRIDE
 dataChanged() indicates, that the series has been changed.
 
- Protected Member Functions inherited from QwtPlotItem
QwtGraphic defaultIcon (const QBrush &, const QSizeF &) const
 Return a default icon from a brush.
 

Detailed Description

A plot item, that represents a vector field.

A vector field is a representation of a points with a given magnitude and direction as arrows. While the direction affects the direction of the arrow, the magnitude might be represented as a color or by the length of the arrow.

See also
QwtVectorFieldSymbol, QwtVectorFieldSample

Member Enumeration Documentation

◆ IndicatorOrigin

Depending on the origin the indicator symbol ( usually an arrow ) will be to the position of the corresponding sample.

Enumerator
OriginHead 

symbol points to the sample position

OriginTail 

The arrow starts at the sample position.

OriginCenter 

The arrow is centered at the sample position.

◆ MagnitudeMode

Depending on the MagnitudeMode the magnitude component will have an impact on the attributes of the symbol/arrow.

See also
setMagnitudeMode()
Enumerator
MagnitudeAsColor 

The magnitude will be mapped to a color using a color map.

See also
magnitudeRange(), colorMap()
MagnitudeAsLength 

The magnitude will have an impact on the length of the arrow/symbol.

See also
arrowLength(), magnitudeScaleFactor()

◆ PaintAttribute

Attributes to modify the rendering.

See also
setPaintAttribute(), testPaintAttribute()

Constructor & Destructor Documentation

◆ QwtPlotVectorField() [1/2]

QwtPlotVectorField::QwtPlotVectorField ( const QString &  title = QString())
explicit

Constructor.

Parameters
titleTitle of the curve

◆ QwtPlotVectorField() [2/2]

QwtPlotVectorField::QwtPlotVectorField ( const QwtText title)
explicit

Constructor.

Parameters
titleTitle of the curve

Member Function Documentation

◆ arrowLength()

double QwtPlotVectorField::arrowLength ( double  magnitude) const
virtual

Computes length of the arrow in screen coordinate units based on its magnitude.

Default implementation simply scales the vector using the magnitudeScaleFactor() If the result is not null, the length is then bounded into the interval [ minArrowLength(), maxArrowLength() ].

Re-implement this function to provide special handling for zero/non-zero magnitude arrows, or impose minimum/maximum arrow length limits.

Parameters
magnitudeMagnitude
Returns
Length of arrow to be drawn in dependence of vector magnitude.
See also
magnitudeScaleFactor, minArrowLength(), maxArrowLength()
Note
Has no effect when QwtPlotVectorField::MagnitudeAsLength is not enabled

◆ boundingRect()

QRectF QwtPlotVectorField::boundingRect ( ) const
virtual
Returns
An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)
Note
A width or height < 0.0 is ignored by the autoscaler

Reimplemented from QwtPlotSeriesItem.

◆ brush()

QBrush QwtPlotVectorField::brush ( ) const
Returns
Brush used to fill the symbol
See also
setBrush(), pen()

◆ colorMap()

const QwtColorMap * QwtPlotVectorField::colorMap ( ) const
Returns
Color Map used for mapping the intensity values to colors
See also
setColorMap()

◆ dataChanged()

void QwtPlotVectorField::dataChanged ( )
protectedvirtual

dataChanged() indicates, that the series has been changed.

Reimplemented from QwtPlotSeriesItem.

◆ drawSeries()

void QwtPlotVectorField::drawSeries ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect,
int  from,
int  to 
) const
virtual

Draw a subset of the points.

Parameters
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rectangle of the canvas
fromIndex of the first sample to be painted
toIndex of the last sample to be painted. If to < 0 the series will be painted to its last sample.

Implements QwtPlotSeriesItem.

◆ drawSymbol()

void QwtPlotVectorField::drawSymbol ( QPainter *  painter,
double  x,
double  y,
double  vx,
double  vy 
) const
protectedvirtual

Draw a arrow/symbols at a specific position.

x, y, are paint device coordinates, while vx, vy are from the corresponding sample.

See also
setSymbol(), drawSeries()

◆ drawSymbols()

void QwtPlotVectorField::drawSymbols ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect,
int  from,
int  to 
) const
protectedvirtual

Draw symbols.

Parameters
painterPainter
xMapx map
yMapy map
canvasRectContents rectangle of the canvas
fromIndex of the first sample to be painted
toIndex of the last sample to be painted
See also
setSymbol(), drawSymbol(), drawSeries()

◆ indicatorOrigin()

QwtPlotVectorField::IndicatorOrigin QwtPlotVectorField::indicatorOrigin ( ) const
Returns
origin for the symbols/arrows

◆ legendIcon()

QwtGraphic QwtPlotVectorField::legendIcon ( int  index,
const QSizeF &  size 
) const
virtual
Returns
Icon representing the vector fields on the legend
Parameters
indexIndex of the legend entry ( ignored as there is only one )
sizeIcon size
See also
QwtPlotItem::setLegendIconSize(), QwtPlotItem::legendData()

Reimplemented from QwtPlotItem.

◆ magnitudeRange()

QwtInterval QwtPlotVectorField::magnitudeRange ( ) const
Returns
min/max magnitudes to be used for color map lookups
See also
setMagnitudeRange(), colorMap()

◆ magnitudeScaleFactor()

double QwtPlotVectorField::magnitudeScaleFactor ( ) const
Returns
Scale factor used to calculate the arrow length from the magnitude

The length of the arrow in screen coordinate units is calculated by scaling the magnitude by the magnitudeScaleFactor.

Default implementation simply scales the vector using the magnitudeScaleFactor property. Re-implement this function to provide special handling for zero/non-zero magnitude arrows, or impose minimum/maximum arrow length limits.

Returns
Length of arrow to be drawn in dependence of vector magnitude.
See also
magnitudeScaleFactor
Note
Has no effect when QwtPlotVectorField::MagnitudeAsLength is not enabled

◆ maxArrowLength()

double QwtPlotVectorField::maxArrowLength ( ) const
Returns
maximum for the arrow length
See also
setMinArrowLength(), maxArrowLength(), arrowLength()
Note
Has no effect when QwtPlotVectorField::MagnitudeAsLength is not enabled

◆ minArrowLength()

double QwtPlotVectorField::minArrowLength ( ) const
Returns
minimum for the arrow length of non zero vectors
See also
setMinArrowLength(), maxArrowLength(), arrowLength()
Note
Has no effect when QwtPlotVectorField::MagnitudeAsLength is not enabled

◆ pen()

QPen QwtPlotVectorField::pen ( ) const
Returns
Pen used to draw the lines
See also
setPen(), brush()

◆ rasterSize()

QSizeF QwtPlotVectorField::rasterSize ( ) const
Returns
raster size used for filtering samples
See also
setRasterSize(), QwtPlotVectorField::FilterVectors

◆ rtti()

int QwtPlotVectorField::rtti ( ) const
virtual
Returns
QwtPlotItem::Rtti_PlotField

Reimplemented from QwtPlotItem.

◆ setBrush()

void QwtPlotVectorField::setBrush ( const QBrush &  brush)

Assign a brush.

Parameters
brushNew brush
See also
brush(), pen()
Note
the brush is ignored in MagnitudeAsColor mode

◆ setColorMap()

void QwtPlotVectorField::setColorMap ( QwtColorMap colorMap)

Change the color map.

The color map is used to map the magnitude of a sample into a color using a known range for the magnitudes.

Parameters
colorMapColor Map
See also
colorMap(), magnitudeRange()

◆ setIndicatorOrigin()

void QwtPlotVectorField::setIndicatorOrigin ( IndicatorOrigin  origin)

Set the origin for the symbols/arrows.

Parameters
originOrigin
See also
indicatorOrigin()

◆ setMagnitudeMode()

void QwtPlotVectorField::setMagnitudeMode ( MagnitudeMode  mode,
bool  on = true 
)

Specify a mode how to represent the magnitude a n arrow/symbol.

Parameters
modeMode
onOn/Off
See also
testMagnitudeMode()

◆ setMagnitudeRange()

void QwtPlotVectorField::setMagnitudeRange ( const QwtInterval magnitudeRange)

Sets the min/max magnitudes to be used for color map lookups.

If invalid (min=max=0 or negative values), the range is determined from the current range of magnitudes in the vector samples.

See also
magnitudeRange(), colorMap()

◆ setMagnitudeScaleFactor()

void QwtPlotVectorField::setMagnitudeScaleFactor ( double  factor)

Set the magnitudeScaleFactor.

The length of the arrow in screen coordinate units is calculated by scaling the magnitude by the magnitudeScaleFactor.

Parameters
factorScale factor
See also
magnitudeScaleFactor(), arrowLength()
Note
Has no effect when QwtPlotVectorField::MagnitudeAsLength is not enabled

◆ setMaxArrowLength()

void QwtPlotVectorField::setMaxArrowLength ( double  length)

Set a maximum for the arrow length.

Parameters
lengthMaximum for the arrow length in pixels
See also
maxArrowLength(), setMinArrowLength(), arrowLength()
Note
Has no effect when QwtPlotVectorField::MagnitudeAsLength is not enabled

◆ setMinArrowLength()

void QwtPlotVectorField::setMinArrowLength ( double  length)

Set a minimum for the arrow length of non zero vectors.

Parameters
lengthMinimum for the arrow length in pixels
See also
minArrowLength(), setMaxArrowLength(), arrowLength()
Note
Has no effect when QwtPlotVectorField::MagnitudeAsLength is not enabled

◆ setPaintAttribute()

void QwtPlotVectorField::setPaintAttribute ( PaintAttribute  attribute,
bool  on = true 
)

Specify an attribute how to draw the curve.

Parameters
attributePaint attribute
onOn/Off
See also
testPaintAttribute()

◆ setPen()

void QwtPlotVectorField::setPen ( const QPen &  pen)

Assign a pen.

Parameters
penNew pen
See also
pen(), brush()
Note
the pen is ignored in MagnitudeAsColor mode

◆ setRasterSize()

void QwtPlotVectorField::setRasterSize ( const QSizeF &  size)

Set the raster size used for filtering samples.

See also
rasterSize(), QwtPlotVectorField::FilterVectors

◆ setSamples() [1/2]

void QwtPlotVectorField::setSamples ( const QVector< QwtVectorFieldSample > &  samples)

Initialize data with an array of samples.

Parameters
samplesVector of points

◆ setSamples() [2/2]

void QwtPlotVectorField::setSamples ( QwtVectorFieldData data)

Assign a series of samples.

setSamples() is just a wrapper for setData() without any additional value - beside that it is easier to find for the developer.

Parameters
dataData
Warning
The item takes ownership of the data object, deleting it when its not used anymore.

◆ setSymbol()

void QwtPlotVectorField::setSymbol ( QwtVectorFieldSymbol symbol)

Sets a new arrow symbol (implementation of arrow drawing code).

Parameters
symbolArrow symbol
See also
symbol(), drawSymbol()
Note
Ownership is transferred to QwtPlotVectorField.

◆ symbol()

const QwtVectorFieldSymbol * QwtPlotVectorField::symbol ( ) const
Returns
arrow symbol
See also
setSymbol(), drawSymbol()

◆ testMagnitudeMode()

bool QwtPlotVectorField::testMagnitudeMode ( MagnitudeMode  mode) const
Returns
True, when mode is enabled
See also
MagnitudeMode, setMagnitudeMode()

◆ testPaintAttribute()

bool QwtPlotVectorField::testPaintAttribute ( PaintAttribute  attribute) const
Returns
True, when attribute is enabled
See also
PaintAttribute, setPaintAttribute()

The documentation for this class was generated from the following files: