#ifndef BUFFERED_VALUE_H #define BUFFERED_VALUE_H #include "math/Math.h" template class BufferedValue { T last; T current; public: BufferedValue(const T& t) : last(t), current(t) { } void update() { last = current; } T get(float lag) { return Math::interpolate(last, current, lag); } BufferedValue& operator=(const T& t) { current = t; return *this; } operator T&() { return current; } operator const T&() const { return current; } }; #endif