add basic types and fix cmake

This commit is contained in:
2026-04-19 15:35:21 +02:00
parent ebf6cea353
commit 41fd2a83ee
30 changed files with 1562 additions and 5 deletions

23
src/lib/core/Tick.h Normal file
View 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;
}