Krita Source Code Documentation
Loading...
Searching...
No Matches
KisIncrementalAverage Class Reference

#include <kis_incremental_average.h>

Public Member Functions

 KisIncrementalAverage (int size)
 
int pushThrough (int value)
 

Private Attributes

int m_index
 
int m_size
 
int m_sum
 
QVector< int > m_values
 

Detailed Description

Definition at line 14 of file kis_incremental_average.h.

Constructor & Destructor Documentation

◆ KisIncrementalAverage()

KisIncrementalAverage::KisIncrementalAverage ( int size)
inline

Member Function Documentation

◆ pushThrough()

int KisIncrementalAverage::pushThrough ( int value)
inline

Definition at line 25 of file kis_incremental_average.h.

25 {
26 if (m_index < 0) {
27 for (int i = 0; i < m_size; i++) {
28 m_values[i] = value;
29 }
30 m_index = 0;
31 m_sum = 3 * value;
32 return value;
33 }
34
35 int oldValue = m_values[m_index];
37
38 m_sum += value - oldValue;
39
40 if (++m_index >= m_size) {
41 m_index = 0;
42 }
43
44 return m_sum / m_size;
45 }
float value(const T *src, size_t ch)

References m_index, m_size, m_sum, m_values, and value().

Member Data Documentation

◆ m_index

int KisIncrementalAverage::m_index
private

Definition at line 49 of file kis_incremental_average.h.

◆ m_size

int KisIncrementalAverage::m_size
private

Definition at line 48 of file kis_incremental_average.h.

◆ m_sum

int KisIncrementalAverage::m_sum
private

Definition at line 50 of file kis_incremental_average.h.

◆ m_values

QVector<int> KisIncrementalAverage::m_values
private

Definition at line 51 of file kis_incremental_average.h.


The documentation for this class was generated from the following file: