qwt_point_data.h
Go to the documentation of this file.
1 /******************************************************************************
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* m_x;
56  const T* m_y;
57  size_t m_size;
58 };
59 
66 template< typename T >
68 {
69  public:
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* m_y;
101  size_t m_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 m_size;
189 };
190 
199 template< typename T >
201  const QVector< T >& x, const QVector< T >& y )
202  : m_x( x )
203  , m_y( y )
204 {
205 }
206 
215 template< typename T >
216 QwtPointArrayData< T >::QwtPointArrayData( const T* x, const T* y, size_t size )
217 {
218  m_x.resize( size );
219  std::memcpy( m_x.data(), x, size * sizeof( T ) );
220 
221  m_y.resize( size );
222  std::memcpy( m_y.data(), y, size * sizeof( T ) );
223 }
224 
226 template< typename T >
228 {
229  return qMin( m_x.size(), m_y.size() );
230 }
231 
238 template< typename T >
239 QPointF QwtPointArrayData< T >::sample( size_t index ) const
240 {
241  return QPointF( m_x[int( index )], m_y[int( index )] );
242 }
243 
245 template< typename T >
247 {
248  return m_x;
249 }
250 
252 template< typename T >
254 {
255  return m_y;
256 }
257 
265 template< typename T >
267  : m_y( y )
268 {
269 }
270 
278 template< typename T >
280 {
281  m_y.resize( size );
282  std::memcpy( m_y.data(), y, size * sizeof( T ) );
283 }
284 
286 template< typename T >
288 {
289  return m_y.size();
290 }
291 
298 template< typename T >
299 QPointF QwtValuePointData< T >::sample( size_t index ) const
300 {
301  return QPointF( index, m_y[int( index )] );
302 }
303 
305 template< typename T >
307 {
308  return m_y;
309 }
310 
325 template< typename T >
326 QwtCPointerData< T >::QwtCPointerData( const T* x, const T* y, size_t size )
327  : m_x( x )
328  , m_y( y )
329  , m_size( size )
330 {
331 }
332 
334 template< typename T >
336 {
337  return m_size;
338 }
339 
346 template< typename T >
347 QPointF QwtCPointerData< T >::sample( size_t index ) const
348 {
349  return QPointF( m_x[int( index )], m_y[int( index )] );
350 }
351 
353 template< typename T >
355 {
356  return m_x;
357 }
358 
360 template< typename T >
362 {
363  return m_y;
364 }
365 
379 template< typename T >
381  : m_y( y )
382  , m_size( size )
383 {
384 }
385 
387 template< typename T >
389 {
390  return m_size;
391 }
392 
399 template< typename T >
401 {
402  return QPointF( index, m_y[ int( index ) ] );
403 }
404 
406 template< typename T >
408 {
409  return m_y;
410 }
411 
412 #endif
virtual size_t size() const QWT_OVERRIDE
virtual void setRectOfInterest(const QRectF &rect)
A class representing an interval.
Definition: qwt_interval.h:22
#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)
const T * xData() const
QwtInterval m_intervalOfInterest
QVector< T > m_x
QVector< T > m_y
virtual QPointF sample(size_t index) const QWT_OVERRIDE
QwtCPointerData(const T *x, const T *y, size_t size)
const T * yData() const
Data class containing two pointers to memory blocks of T.
const QVector< T > & xData() const
Data class containing a pointer to memory of y coordinates.
Synthetic point data.
virtual size_t size() const QWT_OVERRIDE
virtual QPointF sample(size_t index) const QWT_OVERRIDE
const QVector< T > & yData() const
const 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)
QVector< T > m_y
const QVector< T > & yData() const
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 Mon Jun 19 2023 03:01:39