QWT 7.0.1
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
75 Q_DECLARE_FLAGS( LegendAttributes, LegendAttribute )
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.
Definition qwt_curve_fitter.h:39
A paint device for scalable graphics.
Definition qwt_graphic.h:93
A class representing an interval.
Definition qwt_interval.h:40
A point in polar coordinates.
Definition qwt_point_polar.h:46
An item, that represents a series of points.
Definition qwt_polar_curve.h:31
LegendAttribute
Attributes how to represent the curve on the legend.
Definition qwt_polar_curve.h:64
CurveStyle
Curve styles.
Definition qwt_polar_curve.h:38
@ NoCurve
Don't draw a curve. Note: This doesn't affect the symbols.
Definition qwt_polar_curve.h:40
@ Lines
Connect the points with straight lines.
Definition qwt_polar_curve.h:47
QwtPointPolar sample(int i) const
Definition qwt_polar_curve.h:153
Base class for items on a polar plot.
Definition qwt_polar_item.h:38
virtual int rtti() const
Return rtti for the specific class represented.
Definition qwt_polar_item.cpp:112
A scale map.
Definition qwt_scale_map.h:44
Abstract interface for iterating over samples.
Definition qwt_series_data.h:67
A class for drawing symbols.
Definition qwt_symbol.h:49
A class representing a text.
Definition qwt_text.h:69