Qwt Polar User's Guide  1.1.1
 All Classes Functions Typedefs Enumerations Enumerator Pages
qwt_polar_curve.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
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_polar_global.h"
13 #include "qwt_polar_item.h"
14 #include <qwt_point_polar.h>
15 #include <qwt_series_data.h>
16 
17 class QPainter;
18 class QwtSymbol;
19 class QwtCurveFitter;
20 
30 class QWT_POLAR_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  typedef QFlags<LegendAttribute> LegendAttributes;
77 
78 
79  explicit QwtPolarCurve();
80  explicit QwtPolarCurve( const QwtText &title );
81  explicit QwtPolarCurve( const QString &title );
82 
83  virtual ~QwtPolarCurve();
84 
85  virtual int rtti() const;
86 
87  void setLegendAttribute( LegendAttribute, bool on = true );
88  bool testLegendAttribute( LegendAttribute ) const;
89 
90  void setData( QwtSeriesData<QwtPointPolar> *data );
91  const QwtSeriesData<QwtPointPolar> *data() const;
92 
93  size_t dataSize() const;
94  QwtPointPolar sample( int i ) const;
95 
96  void setPen( const QPen & );
97  const QPen &pen() const;
98 
99  void setStyle( CurveStyle style );
100  CurveStyle style() const;
101 
102  void setSymbol( QwtSymbol * );
103  const QwtSymbol *symbol() const;
104 
105  void setCurveFitter( QwtCurveFitter * );
106  QwtCurveFitter *curveFitter() const;
107 
108  virtual void draw( QPainter *p,
109  const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
110  const QPointF &pole, double radius,
111  const QRectF &canvasRect ) const;
112 
113  virtual void draw( QPainter *p,
114  const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
115  const QPointF &pole, int from, int to ) const;
116 
117  virtual QwtInterval boundingInterval( int scaleId ) const;
118 
119  virtual QwtGraphic legendIcon( int index, const QSizeF & ) const;
120 
121 protected:
122 
123  void init();
124 
125  virtual void drawCurve( QPainter *, int style,
126  const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
127  const QPointF &pole, int from, int to ) const;
128 
129  virtual void drawSymbols( QPainter *, const QwtSymbol &,
130  const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
131  const QPointF &pole, int from, int to ) const;
132 
133  void drawLines( QPainter *,
134  const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
135  const QPointF &pole, int from, int to ) const;
136 
137 private:
138  QwtSeriesData<QwtPointPolar> *d_series;
139 
140  class PrivateData;
141  PrivateData *d_data;
142 };
143 
145 inline const QwtSeriesData<QwtPointPolar> *QwtPolarCurve::data() const
146 {
147  return d_series;
148 }
149 
154 inline QwtPointPolar QwtPolarCurve::sample( int i ) const
155 {
156  return d_series->sample( i );
157 }
158 
159 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarCurve::LegendAttributes )
160 
161 #endif
CurveStyle
Definition: qwt_polar_curve.h:37
LegendAttribute
Attributes how to represent the curve on the legend.
Definition: qwt_polar_curve.h:63
QwtPointPolar sample(int i) const
Definition: qwt_polar_curve.h:154
virtual QwtGraphic legendIcon(int index, const QSizeF &) const
Definition: qwt_polar_item.cpp:465
QFlags< LegendAttribute > LegendAttributes
Legend attributes.
Definition: qwt_polar_curve.h:76
virtual void draw(QPainter *painter, const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap, const QPointF &pole, double radius, const QRectF &canvasRect) const =0
Draw the item.
Base class for items on a polar plot.
Definition: qwt_polar_item.h:37
virtual QwtInterval boundingInterval(int scaleId) const
Definition: qwt_polar_item.cpp:382
Definition: qwt_polar_curve.h:47
const QwtSeriesData< QwtPointPolar > * data() const
Definition: qwt_polar_curve.h:145
Don&#39;t draw a curve. Note: This doesn&#39;t affect the symbols.
Definition: qwt_polar_curve.h:40
An item, that represents a series of points.
Definition: qwt_polar_curve.h:30
virtual int rtti() const
Definition: qwt_polar_item.cpp:113