Qwt User's Guide 6.3.0
Loading...
Searching...
No Matches
qwt_polar_curve.h
1/******************************************************************************
2 * QwtPolar Widget Library
3 * Copyright (C) 2008 Uwe Rathmann
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the Qwt License, Version 1.0
7 *****************************************************************************/
8
9#ifndef QWT_POLAR_CURVE_H
10#define QWT_POLAR_CURVE_H
11
12#include "qwt_global.h"
13#include "qwt_polar_item.h"
14#include "qwt_point_polar.h"
15#include "qwt_series_data.h"
16
17class QPainter;
18class QwtSymbol;
19class QwtCurveFitter;
20
30class QWT_EXPORT QwtPolarCurve : public QwtPolarItem
31{
32 public:
38 {
41
48
50 UserCurve = 100
51 };
52
64 {
69 LegendShowLine = 0x01,
70
72 LegendShowSymbol = 0x02
73 };
74
76
77
78 explicit QwtPolarCurve();
79 explicit QwtPolarCurve( const QwtText& title );
80 explicit QwtPolarCurve( const QString& title );
81
82 virtual ~QwtPolarCurve();
83
84 virtual int rtti() const QWT_OVERRIDE;
85
86 void setLegendAttribute( LegendAttribute, bool on = true );
87 bool testLegendAttribute( LegendAttribute ) const;
88
89 void setData( QwtSeriesData< QwtPointPolar >* data );
90 const QwtSeriesData< QwtPointPolar >* data() const;
91
92 size_t dataSize() const;
93 QwtPointPolar sample( int i ) const;
94
95 void setPen( const QPen& );
96 const QPen& pen() const;
97
98 void setStyle( CurveStyle style );
99 CurveStyle style() const;
100
101 void setSymbol( QwtSymbol* );
102 const QwtSymbol* symbol() const;
103
104 void setCurveFitter( QwtCurveFitter* );
105 QwtCurveFitter* curveFitter() const;
106
107 virtual void draw( QPainter* p,
108 const QwtScaleMap& azimuthMap, const QwtScaleMap& radialMap,
109 const QPointF& pole, double radius,
110 const QRectF& canvasRect ) const QWT_OVERRIDE;
111
112 virtual void draw( QPainter* p,
113 const QwtScaleMap& azimuthMap, const QwtScaleMap& radialMap,
114 const QPointF& pole, int from, int to ) const;
115
116 virtual QwtInterval boundingInterval( int scaleId ) const QWT_OVERRIDE;
117
118 virtual QwtGraphic legendIcon( int index, const QSizeF& ) const QWT_OVERRIDE;
119
120 protected:
121
122 void init();
123
124 virtual void drawCurve( QPainter*, int style,
125 const QwtScaleMap& azimuthMap, const QwtScaleMap& radialMap,
126 const QPointF& pole, int from, int to ) const;
127
128 virtual void drawSymbols( QPainter*, const QwtSymbol&,
129 const QwtScaleMap& azimuthMap, const QwtScaleMap& radialMap,
130 const QPointF& pole, int from, int to ) const;
131
132 void drawLines( QPainter*,
133 const QwtScaleMap& azimuthMap, const QwtScaleMap& radialMap,
134 const QPointF& pole, int from, int to ) const;
135
136 private:
137 QwtSeriesData< QwtPointPolar >* m_series;
138
139 class PrivateData;
140 PrivateData* m_data;
141};
142
144inline const QwtSeriesData< QwtPointPolar >* QwtPolarCurve::data() const
145{
146 return m_series;
147}
148
154{
155 return m_series->sample( i );
156}
157
158Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarCurve::LegendAttributes )
159
160#endif
Abstract base class for a curve fitter.
A paint device for scalable graphics.
Definition qwt_graphic.h:76
A class representing an interval.
A point in polar coordinates.
An item, that represents a series of points.
LegendAttribute
Attributes how to represent the curve on the legend.
QFlags< LegendAttribute > LegendAttributes
@ NoCurve
Don't draw a curve. Note: This doesn't affect the symbols.
QwtPointPolar sample(int i) const
Base class for items on a polar plot.
virtual int rtti() const
A scale map.
Abstract interface for iterating over samples.
A class for drawing symbols.
Definition qwt_symbol.h:32
A class representing a text.
Definition qwt_text.h:52