Krita Source Code Documentation
Loading...
Searching...
No Matches
KisFilteredRollingMean.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KISFILTEREDROLLINGMEAN_H
8#define KISFILTEREDROLLINGMEAN_H
9
10#include "kritaglobal_export.h"
11
12#include <vector>
13#include <boost/circular_buffer.hpp>
14#include <QtGlobal>
15
33class KRITAGLOBAL_EXPORT KisFilteredRollingMean
34{
35public:
46 KisFilteredRollingMean(int windowSize, qreal effectivePortion);
47
52 void addValue(qreal value);
53
61 qreal filteredMean() const;
62
66 bool isEmpty() const;
67
68private:
69 boost::circular_buffer<qreal> m_values;
72 mutable std::vector<qreal> m_cutOffBuffer;
73};
74
75#endif // KISFILTEREDROLLINGMEAN_H
float value(const T *src, size_t ch)
boost::circular_buffer< qreal > m_values
std::vector< qreal > m_cutOffBuffer