-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclock.h
More file actions
47 lines (38 loc) · 753 Bytes
/
Copy pathclock.h
File metadata and controls
47 lines (38 loc) · 753 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef BMD_CLOCK_H
#define BMD_CLOCK_H BMD_CLOCK_H
template<int T = 20>
class Clock
{
public:
Clock() : m_numValues(0), m_sum(0.0f) { }
void addValue(float val)
{
m_sum += val;
if(m_numValues < T)
{
m_values[m_numValues] = val;
++m_numValues;
}
else
{
m_sum -= m_values[0];
for(int i = 0; i < T - 1; ++i)
m_values[i] = m_values[i + 1];
m_values[T - 1] = val;
}
}
float getAverage()
{
if(m_numValues == 0)
return 0;
float sum = 0.0f;
for(int i = 0; i < m_numValues; ++i)
sum += m_values[i];
return sum/m_numValues;
}
private:
float m_values[T];
int m_numValues;
float m_sum;
};
#endif //BMD_CLOCK_H