summaryrefslogtreecommitdiffhomepage
path: root/Timeline.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Timeline.cpp')
-rw-r--r--Timeline.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/Timeline.cpp b/Timeline.cpp
new file mode 100644
index 0000000..b6003e5
--- /dev/null
+++ b/Timeline.cpp
@@ -0,0 +1,40 @@
+#include "Timeline.h"
+
+#include <algorithm>
+#include <ctime>
+
+
+Timeline::Timeline(const std::time_t start, const std::time_t end) :
+ m_start {start},
+ m_end {static_cast<double>(end - start)},
+ m_current {0.0}
+{
+}
+
+
+std::time_t
+Timeline::timestamp() const
+{
+ return m_start + m_current;
+}
+
+
+double
+Timeline::current() const
+{
+ return m_current;
+}
+
+
+double
+Timeline::progress() const
+{
+ return m_current / m_end;
+}
+
+
+double
+Timeline::move(const double dt)
+{
+ return m_current = std::clamp(m_current + dt, 0.0, m_end);
+}