#include "Timer.hpp" sb::Timer::operator bool() const { return timing; } sb::Timer::operator float() const { return _elapsed; } void sb::Timer::toggle() { toggle(!*this); } void sb::Timer::toggle(bool state) { timing = state; } void sb::Timer::on() { toggle(ON); } void sb::Timer::off() { toggle(OFF); } void sb::Timer::reset() { _elapsed = 0; } float sb::Timer::elapsed() const { return _elapsed; } void sb::Timer::elapsed(float seconds) { _elapsed = seconds; } float sb::Timer::frame() const { return frame_duration; } float sb::Timer::stamp() const { return _stamp; } void sb::Timer::update(float stamp) { _stamp = stamp; if (previous_is_recorded) { if (*this) { frame_duration = stamp - stamp_previous; _elapsed += frame(); } else { frame_duration = 0.0f; } } stamp_previous = stamp; previous_is_recorded = true; }