1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#ifndef _CIRCULAR_BUFFER_H_
#define _CIRCULAR_BUFFER_H_
#include <qwt_series_data.h>
#include <qvector.h>
class CircularBuffer: public QwtSeriesData<QPointF>
{
public:
CircularBuffer( double interval = 10.0, size_t numPoints = 1000 );
void fill( double interval, size_t numPoints );
void setReferenceTime( double );
double referenceTime() const;
virtual size_t size() const;
virtual QPointF sample( size_t i ) const;
virtual QRectF boundingRect() const;
void setFunction( double( *y )( double ) );
private:
double ( *d_y )( double );
double d_referenceTime;
double d_interval;
QVector<double> d_values;
double d_step;
int d_startIndex;
double d_offset;
};
#endif
|