Files
qwt/examples/refreshtest/CircularBuffer.h
2023-10-31 09:22:42 +01:00

38 lines
1010 B
C++

/*****************************************************************************
* Qwt Examples - Copyright (C) 2002 Uwe Rathmann
* This file may be used under the terms of the 3-clause BSD License
*****************************************************************************/
#pragma once
#include <QwtSeriesData>
#include <QVector>
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 QWT_OVERRIDE;
virtual QPointF sample( size_t index ) const QWT_OVERRIDE;
virtual QRectF boundingRect() const QWT_OVERRIDE;
void setFunction( double ( * y )( double ) );
private:
double ( * m_y )( double );
double m_referenceTime;
double m_interval;
QVector< double > m_values;
double m_step;
int m_startIndex;
double m_offset;
};