summaryrefslogtreecommitdiff
path: root/timer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'timer.cpp')
-rw-r--r--timer.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/timer.cpp b/timer.cpp
new file mode 100644
index 0000000..1285d65
--- /dev/null
+++ b/timer.cpp
@@ -0,0 +1,41 @@
+#include "timer.h"
+
+Clock::Clock() {
+ reset();
+ running = false;
+}
+
+void Clock::reset() {
+ base = 0;
+ clock.Reset();
+}
+
+void Clock::start() {
+ running = true;
+ clock.Reset();
+}
+
+void Clock::stop() {
+ running = false;
+ base += clock.GetElapsedTime();
+}
+
+float Clock::elapsed() const {
+ if(running) {
+ return base + clock.GetElapsedTime();
+ } else {
+ return base;
+ }
+}
+
+Timer::Timer(const Clock& clock_) : clock(clock_) {
+ reset();
+}
+
+void Timer::reset() {
+ starttime = clock.elapsed();
+}
+
+float Timer::elapsed() const {
+ return clock.elapsed() - starttime;
+}