From 273ebae33b2e6adfd7c07771ab06648c82b09cc2 Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Tue, 5 Mar 2024 10:17:29 +0100 Subject: [PATCH] Fixes --- DiscreteAngle.h | 11 +++++++++-- Range.cpp | 9 ++++++++- Range.h | 2 ++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/DiscreteAngle.h b/DiscreteAngle.h index 0112584..4297c20 100644 --- a/DiscreteAngle.h +++ b/DiscreteAngle.h @@ -5,13 +5,20 @@ // A fixed angle between (-180..180] -template class AngleUsing : RangeUsing { +template class AngleUsing { public: AngleUsing(T sourceValue); float ToFloat(); inline T GetValue() { return this->value; } + + inline AngleUsing operator-(AngleUsing a) { + return this->value - a.value; + } + +protected: + T value; }; #endif -template inline float AngleUsing::ToFloat() { return 0.0f; } +// template inline float AngleUsing::ToFloat() { return 0.0f; } diff --git a/Range.cpp b/Range.cpp index 15bb7ca..d6b9e1b 100644 --- a/Range.cpp +++ b/Range.cpp @@ -38,4 +38,11 @@ bool Range16::operator<(Range16 a) { return (this->range < a.range); } bool Range16::operator>(Range16 a) { return (this->range > a.range); } bool Range16::operator<=(Range16 a) { return (this->range <= a.range); } bool Range16::operator>=(Range16 a) { return (this->range >= a.range); } -*/ \ No newline at end of file +*/ + +template <> RangeUsing::RangeUsing(float f) { + this->value = (unsigned char)((f + 1.0f) * 127.0F); +} +template <> RangeUsing::RangeUsing(float f) { + this->value = (unsigned short)((f + 1.0F) * 32767.0F); +} \ No newline at end of file diff --git a/Range.h b/Range.h index e521c71..bf632ae 100644 --- a/Range.h +++ b/Range.h @@ -30,6 +30,8 @@ protected: template class RangeUsing { public: + RangeUsing(float range); // range -1..1 + inline RangeUsing operator-(RangeUsing a) { this->value - a.value; } inline RangeUsing operator+(RangeUsing a) { this->value + a.value; } inline RangeUsing operator-() { this->value = -this.value; }