circularbuffer.h
715 Bytes
#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