qwt_point_data.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_POINT_DATA_H
11 #define QWT_POINT_DATA_H
12 
13 #include "qwt_global.h"
14 #include "qwt_series_data.h"
15 
16 #include <cstring>
17 
21 template <typename T>
23 {
24 public:
25  QwtPointArrayData( const QVector<T> &x, const QVector<T> &y );
26  QwtPointArrayData( const T *x, const T *y, size_t size );
27 
28  virtual size_t size() const QWT_OVERRIDE;
29  virtual QPointF sample( size_t index ) const QWT_OVERRIDE;
30 
31  const QVector<T> &xData() const;
32  const QVector<T> &yData() const;
33 
34 private:
37 };
38 
42 template <typename T>
44 {
45 public:
46  QwtCPointerData( const T *x, const T *y, size_t size );
47 
48  virtual size_t size() const QWT_OVERRIDE;
49  virtual QPointF sample( size_t index ) const QWT_OVERRIDE;
50 
51  const T *xData() const;
52  const T *yData() const;
53 
54 private:
55  const T *d_x;
56  const T *d_y;
57  size_t d_size;
58 };
59 
66 template <typename T>
68 {
69 public:
70  QwtValuePointData( const QVector<T> &y );
71  QwtValuePointData( const T *y, size_t size );
72 
73  virtual size_t size() const QWT_OVERRIDE;
74  virtual QPointF sample( size_t index ) const QWT_OVERRIDE;
75 
76  const QVector<T> &yData() const;
77 
78 private:
80 };
81 
88 template <typename T>
90 {
91 public:
92  QwtCPointerValueData( const T *y, size_t size );
93 
94  virtual size_t size() const QWT_OVERRIDE;
95  virtual QPointF sample( size_t index ) const QWT_OVERRIDE;
96 
97  const T *yData() const;
98 
99 private:
100  const T *d_y;
101  size_t d_size;
102 };
103 
158 {
159 public:
160  QwtSyntheticPointData( size_t size,
161  const QwtInterval & = QwtInterval() );
162 
163  void setSize( size_t size );
164  virtual size_t size() const QWT_OVERRIDE;
165 
166  void setInterval( const QwtInterval& );
167  QwtInterval interval() const;
168 
169  virtual QRectF boundingRect() const QWT_OVERRIDE;
170  virtual QPointF sample( size_t index ) const QWT_OVERRIDE;
171 
178  virtual double y( double x ) const = 0;
179  virtual double x( uint index ) const;
180 
181  virtual void setRectOfInterest( const QRectF & ) QWT_OVERRIDE;
182  QRectF rectOfInterest() const;
183 
184 private:
185  size_t d_size;
189 };
190 
199 template <typename T>
201  const QVector<T> &x, const QVector<T> &y ):
202  d_x( x ),
203  d_y( y )
204 {
205 }
206 
215 template <typename T>
217  const T *x, const T *y, size_t size )
218 {
219  d_x.resize( size );
220  std::memcpy( d_x.data(), x, size * sizeof( T ) );
221 
222  d_y.resize( size );
223  std::memcpy( d_y.data(), y, size * sizeof( T ) );
224 }
225 
227 template <typename T>
229 {
230  return qMin( d_x.size(), d_y.size() );
231 }
232 
239 template <typename T>
240 QPointF QwtPointArrayData<T>::sample( size_t index ) const
241 {
242  return QPointF( d_x[int( index )], d_y[int( index )] );
243 }
244 
246 template <typename T>
248 {
249  return d_x;
250 }
251 
253 template <typename T>
255 {
256  return d_y;
257 }
258 
266 template <typename T>
268  d_y( y )
269 {
270 }
271 
280 template <typename T>
282 {
283  d_y.resize( size );
284  std::memcpy( d_y.data(), y, size * sizeof( T ) );
285 }
286 
288 template <typename T>
290 {
291  return d_y.size();
292 }
293 
300 template <typename T>
301 QPointF QwtValuePointData<T>::sample( size_t index ) const
302 {
303  return QPointF( index, d_y[int( index )] );
304 }
305 
307 template <typename T>
309 {
310  return d_y;
311 }
312 
327 template <typename T>
328 QwtCPointerData<T>::QwtCPointerData( const T *x, const T *y, size_t size ):
329  d_x( x ),
330  d_y( y ),
331  d_size( size )
332 {
333 }
334 
336 template <typename T>
338 {
339  return d_size;
340 }
341 
348 template <typename T>
349 QPointF QwtCPointerData<T>::sample( size_t index ) const
350 {
351  return QPointF( d_x[int( index )], d_y[int( index )] );
352 }
353 
355 template <typename T>
357 {
358  return d_x;
359 }
360 
362 template <typename T>
364 {
365  return d_y;
366 }
367 
381 template <typename T>
383  d_y( y ),
384  d_size( size )
385 {
386 }
387 
389 template <typename T>
391 {
392  return d_size;
393 }
394 
401 template <typename T>
402 QPointF QwtCPointerValueData<T>::sample( size_t index ) const
403 {
404  return QPointF( index, d_y[ int( index ) ] );
405 }
406 
408 template <typename T>
410 {
411  return d_y;
412 }
413 
414 #endif
virtual size_t size() const QWT_OVERRIDE
virtual void setRectOfInterest(const QRectF &rect)
QVector< T > d_y
A class representing an interval.
Definition: qwt_interval.h:22
QVector< T > d_x
#define QWT_EXPORT
Definition: qwt_global.h:38
Interface for iterating over a QVector<T>.
virtual QRectF boundingRect() const QWT_OVERRIDE
Calculate the bounding rectangle.
QwtPointArrayData(const QVector< T > &x, const QVector< T > &y)
QwtInterval d_intervalOfInterest
const QVector< T > & xData() const
const T * yData() const
virtual QPointF sample(size_t index) const QWT_OVERRIDE
QwtCPointerData(const T *x, const T *y, size_t size)
QVector< T > d_y
Data class containing two pointers to memory blocks of T.
const QVector< T > & yData() const
const T * xData() const
Data class containing a pointer to memory of y coordinates.
Synthetic point data.
virtual size_t size() const QWT_OVERRIDE
const T * yData() const
virtual QPointF sample(size_t index) const QWT_OVERRIDE
const QVector< T > & yData() const
virtual QPointF sample(size_t index) const QWT_OVERRIDE
virtual QPointF sample(size_t index) const QWT_OVERRIDE
QwtValuePointData(const QVector< T > &y)
Interface for iterating over two QVector<T> objects.
Interface for iterating over an array of points.
#define QWT_OVERRIDE
Definition: qwt_global.h:53
virtual size_t size() const QWT_OVERRIDE
QwtCPointerValueData(const T *y, size_t size)
virtual size_t size() const QWT_OVERRIDE


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