From db92ed183a8328a775323d7d4478397b907297d8 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 7 Mar 2021 18:55:28 +0000 Subject: Speed conversions and literals --- lib/maths.cpp | 10 ++++++++++ lib/maths.h | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/lib/maths.cpp b/lib/maths.cpp index 4ae0693..26eae47 100644 --- a/lib/maths.cpp +++ b/lib/maths.cpp @@ -173,3 +173,13 @@ find_arcs_radius(glm::vec2 start, glm::vec2 ad, glm::vec2 end, glm::vec2 bd) * (sq(m) - 2 * m * o + sq(o) + sq(n) - 2 * n * p + sq(p))))) / (2 * (sq(X) - 2 * X * Z + sq(Z) + sq(Y) - 2 * Y * W + sq(W) - 4)); } + +float operator"" _mph(const long double v) +{ + return mph_to_ms(v); +} + +float operator"" _kph(const long double v) +{ + return kph_to_ms(v); +} diff --git a/lib/maths.h b/lib/maths.h index dc0c617..c4c1a51 100644 --- a/lib/maths.h +++ b/lib/maths.h @@ -87,4 +87,23 @@ std::pair find_arc_centre(glm::vec2 start, glm::vec2 ad, glm::v std::pair find_arcs_radius(glm::vec2 start, float entrys, glm::vec2 end, float entrye); float find_arcs_radius(glm::vec2 start, glm::vec2 ad, glm::vec2 end, glm::vec2 bd); +// Conversions +template +inline constexpr float +mph_to_ms(T v) +{ + return v / 2.237; +} + +template +inline constexpr float +kph_to_ms(T v) +{ + return v / 3.6; +} + +// ... literals are handy for now, probably go away when we load stuff externally +float operator"" _mph(const long double v); +float operator"" _kph(const long double v); + #endif -- cgit v1.2.3