11 #ifndef PLOTTERDIAGRAMCOMPRESSOR_H
12 #define PLOTTERDIAGRAMCOMPRESSOR_H
14 #include <QtCore/QAbstractItemModel>
15 #include <QtCore/QDateTime>
16 #include <QtCore/QObject>
17 #include <QtCore/QPointer>
18 #include <QtCore/QVector>
40 :
key(std::numeric_limits<qreal>::quiet_NaN())
41 ,
value(std::numeric_limits<qreal>::quiet_NaN())
46 const qreal dx =
key - other.
key;
48 return std::sqrt(dx * dx + dy * dy);
58 return !(*
this == other);
90 void handleSlopeForward(
const DataPoint &dp);
91 QPointer<PlotterDiagramCompressor> m_parent;
92 QVector<DataPoint> m_buffer;
97 QDateTime m_timeOfCreation;
122 Iterator
begin(
int dataSet);
123 Iterator
end(
int dataSet);
127 QAbstractItemModel *
model()
const;
128 DataPoint
data(
const CachePosition &pos)
const;
CachePosition(int first, int second)
bool operator==(const CachePosition &rhs) const
bool operator!=(const DataPoint &other)
bool operator==(const DataPoint &other)
qreal distance(const DataPoint &other)
bool operator!=(const Iterator &other) const
Iterator & operator-=(int value)
Iterator & operator+=(int value)
bool operator==(const Iterator &other) const
Iterator(int dataSet, PlotterDiagramCompressor *parent)
Iterator begin(int dataSet)
QPair< QPointF, QPointF > dataBoundaries() const
DataPoint data(const CachePosition &pos) const
void setCompressionModel(CompressionMode value)
void setForcedDataBoundaries(const QPair< qreal, qreal > &bounds, Qt::Orientation direction)
Iterator end(int dataSet)
QAbstractItemModel * model() const
void setModel(QAbstractItemModel *model)
void setMergeRadiusPercentage(qreal radius)
PlotterDiagramCompressor(QObject *parent=nullptr)
~PlotterDiagramCompressor() override
void setMaxSlopeChange(qreal value)
void setMergeRadius(qreal radius)
qreal maxSlopeChange() const
QVector< DataPoint > DataPointVector