namespace SpaceGame.Api.Shared.Runtime; public static class SimulationUnits { public const float KilometersPerAu = 149_597_870.7f; public const float MetersPerKilometer = 1000f; public static float AuToKilometers(float au) => au * KilometersPerAu; public static float KilometersToMeters(float kilometers) => kilometers * MetersPerKilometer; public static float MetersToKilometers(float meters) => meters / MetersPerKilometer; public static Vector3 KilometersToMeters(Vector3 kilometers) => new( KilometersToMeters(kilometers.X), KilometersToMeters(kilometers.Y), KilometersToMeters(kilometers.Z)); public static Vector3 MetersToKilometers(Vector3 meters) => new( MetersToKilometers(meters.X), MetersToKilometers(meters.Y), MetersToKilometers(meters.Z)); public static float AuPerSecondToKilometersPerSecond(float auPerSecond) => auPerSecond * KilometersPerAu; public static float MetersPerSecondToKilometersPerSecond(float metersPerSecond) => metersPerSecond / MetersPerKilometer; }