Added degrees, radians, cos, sin, and tan functions

This commit is contained in:
Pascal Serrarens 2024-09-06 15:35:39 +02:00
parent 5c3dfa66d3
commit 69bad8f662
2 changed files with 27 additions and 9 deletions

View File

@ -78,10 +78,16 @@ AngleOf<float>::AngleOf(int angle) : value((float)angle) {}
template <>
AngleOf<float>::AngleOf(float angle) : value(angle) {}
// template <>
// AngleOf<float>::operator float() const {
// return value;
// }
template <typename T>
AngleOf<T> AngleOf<T>::Degrees(float a) {
AngleOf<T> angle = AngleOf<T>(a);
return angle;
}
template <typename T>
AngleOf<T> AngleOf<T>::Radians(float a) {
AngleOf<T> angle = AngleOf<T>((a / pi) * 180);
return angle;
}
template <>
float AngleOf<float>::ToFloat() const {
@ -194,8 +200,16 @@ AngleOf<float> AngleOf<float>::MoveTowards(AngleOf<float> fromAngle,
}
template <typename T>
float AngleOf<T>::ACos(AngleOf<T> a) {
return acosf(a.InRadians());
float AngleOf<T>::Cos(AngleOf<T> a) {
return cosf(a.InRadians());
}
template <typename T>
float AngleOf<T>::Sin(AngleOf<T> a) {
return sinf(a.InRadians());
}
template <typename T>
float AngleOf<T>::Tan(AngleOf<T> a) {
return tanf(a.InRadians());
}
template <>

10
Angle.h
View File

@ -19,7 +19,9 @@ class AngleOf {
AngleOf() {};
AngleOf(int f);
AngleOf(float f);
// operator float() const;
static AngleOf<T> Degrees(float f);
static AngleOf<T> Radians(float f);
float ToFloat() const;
float InDegrees() const;
@ -27,7 +29,7 @@ class AngleOf {
inline T GetBinary() const { return this->value; }
static AngleOf<T> pi;
// static AngleOf<T> pi;
bool operator==(AngleOf<T> a);
bool operator>(AngleOf<T> a);
@ -57,7 +59,9 @@ class AngleOf {
AngleOf<T> toAngle,
AngleOf<T> maxAngle);
static float ACos(AngleOf<T>);
static float Cos(AngleOf<T>);
static float Sin(AngleOf<T>);
static float Tan(AngleOf<T>);
static AngleOf<T> CosineRuleSide(float a, float b, AngleOf<T> gamma);
static AngleOf<T> CosineRuleAngle(float a, float b, float c);