diff options
Diffstat (limited to 'Stars45/Clock.cpp')
-rw-r--r-- | Stars45/Clock.cpp | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/Stars45/Clock.cpp b/Stars45/Clock.cpp index 6e3ec3f..8fd4f95 100644 --- a/Stars45/Clock.cpp +++ b/Stars45/Clock.cpp @@ -8,11 +8,24 @@ #include <chrono> +static constexpr double NO_COMPRESSION {1.0}; +static constexpr double STARTING_DELTA {1.0 / 60.0}; + Clock::Clock() : - m_point {inner_clock::now()}, - m_compression {1.0} + m_epoch {inner_clock::now()} +{ + Reset(); +} + + +void +Clock::Reset() { + m_point = inner_clock::now(); + m_compression = NO_COMPRESSION; + m_delta = STARTING_DELTA; + m_gui_delta = STARTING_DELTA; } @@ -22,5 +35,35 @@ Clock::Step() const auto next = inner_clock::now(); const std::chrono::duration<double> delta = next - m_point; m_point = next; - return delta.count() * m_compression; + m_delta = delta.count() * m_compression; + m_gui_delta = delta.count(); + return m_delta; +} + + +double +Clock::Delta() const +{ + return m_delta; +} + + +double +Clock::GuiDelta() const +{ + return m_gui_delta; +} + + +void +Clock::SetTimeCompression(double compression) +{ + m_compression = compression; +} + + +double +Clock::TimeCompression() const +{ + return m_compression; } |