From 264bcbc0baecce430c436bfe453a729c4b4bfb93 Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Fri, 5 Apr 2024 11:33:35 +0200 Subject: [PATCH] Added 32 bit angle --- Angle32.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Angle32.h diff --git a/Angle32.h b/Angle32.h new file mode 100644 index 0000000..4820af6 --- /dev/null +++ b/Angle32.h @@ -0,0 +1,21 @@ +#include "AngleUsing.h" + +#include "Angle.h" +#include + +typedef AngleUsing Angle32; + +template <> Angle32::AngleUsing(float angle) { + if (!isfinite(angle)) { + value = 0; + return; + } + + // map float [-180..180) to integer [-2147483648..2147483647] + this->value = (signed short)((angle / 360.0F) * 4294967295.0F); +} + +template <> float Angle32::ToFloat() const { + float f = ((this->value * 180) / 2147483648.0F); + return f; +}