diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/maths.cpp | 10 | ||||
-rw-r--r-- | lib/maths.h | 19 |
2 files changed, 29 insertions, 0 deletions
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<glm::vec2, bool> find_arc_centre(glm::vec2 start, glm::vec2 ad, glm::v std::pair<float, float> 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<typename T> +inline constexpr float +mph_to_ms(T v) +{ + return v / 2.237; +} + +template<typename T> +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 |