Adde degrees/readians and poc ACos

This commit is contained in:
Pascal Serrarens 2024-09-06 13:17:14 +02:00
parent 05c61a3dbd
commit 5c3dfa66d3
2 changed files with 17 additions and 0 deletions

View File

@ -87,6 +87,14 @@ template <>
float AngleOf<float>::ToFloat() const {
return value;
}
template <typename T>
float AngleOf<T>::InDegrees() const {
return this->ToFloat();
}
template <typename T>
float AngleOf<T>::InRadians() const {
return this->ToFloat() * Deg2Rad;
}
// template <>
// AngleOf<float> AngleOf<float>::pi = 3.1415927410125732421875F;
@ -185,6 +193,11 @@ AngleOf<float> AngleOf<float>::MoveTowards(AngleOf<float> fromAngle,
return fromAngle.ToFloat() + d;
}
template <typename T>
float AngleOf<T>::ACos(AngleOf<T> a) {
return acosf(a.InRadians());
}
template <>
AngleOf<float> AngleOf<float>::CosineRuleSide(float a,
float b,

View File

@ -22,6 +22,8 @@ class AngleOf {
// operator float() const;
float ToFloat() const;
float InDegrees() const;
float InRadians() const;
inline T GetBinary() const { return this->value; }
@ -55,6 +57,8 @@ class AngleOf {
AngleOf<T> toAngle,
AngleOf<T> maxAngle);
static float ACos(AngleOf<T>);
static AngleOf<T> CosineRuleSide(float a, float b, AngleOf<T> gamma);
static AngleOf<T> CosineRuleAngle(float a, float b, float c);