add basic types and fix cmake
This commit is contained in:
23
src/lib/core/Tick.h
Normal file
23
src/lib/core/Tick.h
Normal file
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
// Discrete simulation time, measured in ticks since t=0.
|
||||
using Tick = long long;
|
||||
|
||||
// Fixed simulation tick rate. See architecture.md "Fixed-Timestep Tick-Based Simulation".
|
||||
constexpr int kTickRateHz = 30;
|
||||
constexpr double kTickDurationMs = 1000.0 / kTickRateHz;
|
||||
constexpr double kTickDurationSeconds = 1.0 / kTickRateHz;
|
||||
|
||||
// Converts a wall-clock duration (in seconds, as it appears in config TOML) to
|
||||
// an integer tick count. Rounds to nearest to avoid systematic drift from
|
||||
// repeated conversions.
|
||||
constexpr Tick secondsToTicks(double seconds)
|
||||
{
|
||||
return static_cast<Tick>(seconds * kTickRateHz + 0.5);
|
||||
}
|
||||
|
||||
// Inverse of secondsToTicks; useful for logging and UI display.
|
||||
constexpr double ticksToSeconds(Tick ticks)
|
||||
{
|
||||
return static_cast<double>(ticks) / kTickRateHz;
|
||||
}
|
||||
Reference in New Issue
Block a user