diff --git a/Angle.cpp b/Angle.cpp index 431ef1d..dab76e2 100644 --- a/Angle.cpp +++ b/Angle.cpp @@ -88,22 +88,24 @@ template <> Angle2 Angle2::Normalize(Angle2 angle) { return angleValue; } -template -Angle2 Angle2::Clamp(Angle2 angle, Angle2 min, Angle2 max) { +template <> +Angle2 Angle2::Clamp(Angle2 angle, Angle2 min, + Angle2 max) { float normalizedAngle = Normalize(angle); float r = Float::Clamp(normalizedAngle, min, max); return r; } -template -Angle2 Angle2::Difference(Angle2 a, Angle2 b) { - float r = Normalize(b - a); - return r; -} +// template +// Angle2 Angle2::Difference(Angle2 a, Angle2 b) { +// Angle2 r = Normalize(b - a); +// return r; +// } -template -Angle2 Angle2::MoveTowards(Angle2 fromAngle, Angle2 toAngle, - Angle2 maxAngle) { +template <> +Angle2 Angle2::MoveTowards(Angle2 fromAngle, + Angle2 toAngle, + Angle2 maxAngle) { float d = toAngle - fromAngle; float sign = signbit(d) ? -1 : 1; d = sign * Float::Clamp(fabs(d), 0, maxAngle); @@ -140,8 +142,9 @@ Angle2 Angle2::CosineRuleAngle(float a, float b, float c) { return gamma; } -template -Angle2 Angle2::SineRuleAngle(float a, Angle2 beta, float b) { +template <> +Angle2 Angle2::SineRuleAngle(float a, Angle2 beta, + float b) { float alpha = asin(a * sin(beta * Angle::Deg2Rad) / b); return alpha; } \ No newline at end of file diff --git a/Angle.h b/Angle.h index 6027eef..7515cf2 100644 --- a/Angle.h +++ b/Angle.h @@ -16,7 +16,10 @@ public: static Angle2 Normalize(Angle2 angle); static Angle2 Clamp(Angle2 angle, Angle2 min, Angle2 max); - static Angle2 Difference(Angle2 a, Angle2 b); + static Angle2 Difference(Angle2 a, Angle2 b) { + Angle2 r = Normalize(b - a); + return r; + }; static Angle2 MoveTowards(Angle2 fromAngle, Angle2 toAngle, Angle2 maxAngle);