qwt_series_store.h
Go to the documentation of this file.
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SERIES_STORE_H
11 #define QWT_SERIES_STORE_H
12 
13 #include "qwt_global.h"
14 #include "qwt_series_data.h"
15 
25 {
26 public:
29 
30 protected:
31 #ifndef QWT_PYTHON_WRAPPER
32  virtual void dataChanged() = 0;
34 
39  virtual void setRectOfInterest( const QRectF & ) = 0;
40 
42  virtual QRectF dataRect() const = 0;
43 
45  virtual size_t dataSize() const = 0;
46 #else
47  // Needed for generating the python bindings, but not for using them !
48  virtual void dataChanged() {}
49  virtual void setRectOfInterest( const QRectF & ) {}
50  virtual QRectF dataRect() const { return QRectF( 0.0, 0.0, -1.0, -1.0 ); }
51  virtual size_t dataSize() const { return 0; }
52 #endif
53 };
54 
65 template <typename T>
67 {
68 public:
73  explicit QwtSeriesStore<T>();
74 
77 
85  void setData( QwtSeriesData<T> *series );
86 
89 
91  const QwtSeriesData<T> *data() const;
92 
97  T sample( int index ) const;
98 
103  virtual size_t dataSize() const QWT_OVERRIDE;
104 
111  virtual QRectF dataRect() const QWT_OVERRIDE;
112 
119  virtual void setRectOfInterest( const QRectF &rect ) QWT_OVERRIDE;
120 
127  QwtSeriesData<T> *swapData( QwtSeriesData<T> *series );
128 
129 private:
131 };
132 
133 template <typename T>
135  d_series( NULL )
136 {
137 }
138 
139 template <typename T>
141 {
142  delete d_series;
143 }
144 
145 template <typename T>
147 {
148  return d_series;
149 }
150 
151 template <typename T>
153 {
154  return d_series;
155 }
156 
157 template <typename T>
158 inline T QwtSeriesStore<T>::sample( int index ) const
159 {
160  return d_series ? d_series->sample( index ) : T();
161 }
162 
163 template <typename T>
165 {
166  if ( d_series != series )
167  {
168  delete d_series;
169  d_series = series;
170  dataChanged();
171  }
172 }
173 
174 template <typename T>
176 {
177  if ( d_series == NULL )
178  return 0;
179 
180  return d_series->size();
181 }
182 
183 template <typename T>
185 {
186  if ( d_series == NULL )
187  return QRectF( 1.0, 1.0, -2.0, -2.0 ); // invalid
188 
189  return d_series->boundingRect();
190 }
191 
192 template <typename T>
193 void QwtSeriesStore<T>::setRectOfInterest( const QRectF &rect )
194 {
195  if ( d_series )
196  d_series->setRectOfInterest( rect );
197 }
198 
199 template <typename T>
201 {
202  QwtSeriesData<T> * swappedSeries = d_series;
203  d_series = series;
204 
205  return swappedSeries;
206 }
207 
208 #endif
QwtSeriesData< T > * d_series
Abstract interface for iterating over samples.
virtual QRectF dataRect() const QWT_OVERRIDE
QwtSeriesStore()
Constructor The store contains no series.
void setData(QwtSeriesData< T > *series)
~QwtSeriesStore()
Destructor.
QwtSeriesData< T > * data()
virtual void dataChanged()=0
dataChanged() indicates, that the series has been changed.
virtual void setRectOfInterest(const QRectF &)=0
Class storing a QwtSeriesData object.
Bridge between QwtSeriesStore and QwtPlotSeriesItem.
T sample(int index) const
virtual void setRectOfInterest(const QRectF &rect) QWT_OVERRIDE
virtual ~QwtAbstractSeriesStore()
Destructor.
virtual size_t dataSize() const =0
QwtSeriesData< T > * swapData(QwtSeriesData< T > *series)
virtual size_t dataSize() const QWT_OVERRIDE
dictionary data
Definition: mqtt_test.py:22
virtual QRectF dataRect() const =0
#define QWT_OVERRIDE
Definition: qwt_global.h:53


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:48:10