Added Degrees inline function
This commit is contained in:
parent
a4b0491c2f
commit
86b7c21dca
3
Angle.h
3
Angle.h
@ -16,6 +16,9 @@ class AngleOf {
|
|||||||
// AngleOf(T v) : value(v) {}
|
// AngleOf(T v) : value(v) {}
|
||||||
// operator T() const; // { return value; }
|
// operator T() const; // { return value; }
|
||||||
operator float() const;
|
operator float() const;
|
||||||
|
|
||||||
|
static AngleOf<T> Degrees(float f);
|
||||||
|
|
||||||
inline T GetBinary() const { return this->value; }
|
inline T GetBinary() const { return this->value; }
|
||||||
|
|
||||||
static AngleOf<T> Rad2Deg;
|
static AngleOf<T> Rad2Deg;
|
||||||
|
17
Angle16.cpp
17
Angle16.cpp
@ -13,7 +13,7 @@ AngleOf<signed short>::AngleOf(float angle) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// map float [-180..180) to integer [-32768..32767]
|
// map float [-180..180) to integer [-32768..32767]
|
||||||
this->value = (signed short)((angle / 360.0F) * 65536.0F);
|
this->value = (signed short)(angle / 360.0F * 65536.0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
@ -22,21 +22,6 @@ AngleOf<signed short>::operator float() const {
|
|||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This should not exist...
|
|
||||||
// template <>
|
|
||||||
// AngleOf<signed short> AngleOf<signed short>::pi = 3.1415927410125732421875F;
|
|
||||||
|
|
||||||
// template <>
|
|
||||||
// AngleOf<signed short> AngleOf<signed short>::Rad2Deg = 360.0f / (pi * 2);
|
|
||||||
// template <>
|
|
||||||
// AngleOf<signed short> AngleOf<signed short>::Deg2Rad = (pi * 2) / 360.0f;
|
|
||||||
|
|
||||||
// template <>
|
|
||||||
// AngleOf<signed short> AngleOf<signed short>::Normalize(
|
|
||||||
// AngleOf<signed short> angle) {
|
|
||||||
// return angle;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Not correct!!! just for syntactical compilation ATM
|
// Not correct!!! just for syntactical compilation ATM
|
||||||
template <>
|
template <>
|
||||||
AngleOf<signed short> AngleOf<signed short>::CosineRuleSide(
|
AngleOf<signed short> AngleOf<signed short>::CosineRuleSide(
|
||||||
|
@ -8,6 +8,10 @@ namespace LinearAlgebra {
|
|||||||
|
|
||||||
typedef AngleOf<signed short> Angle16;
|
typedef AngleOf<signed short> Angle16;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
inline static Angle16 Angle16::Degrees(float angle) {
|
||||||
|
return (angle / 360.0F * 65536.0F);
|
||||||
|
}
|
||||||
// template <> Angle16::AngleOf(float angle) {
|
// template <> Angle16::AngleOf(float angle) {
|
||||||
// if (!isfinite(angle)) {
|
// if (!isfinite(angle)) {
|
||||||
// value = 0;
|
// value = 0;
|
||||||
|
5
Angle8.h
5
Angle8.h
@ -8,6 +8,11 @@ namespace LinearAlgebra {
|
|||||||
|
|
||||||
typedef AngleOf<signed char> Angle8;
|
typedef AngleOf<signed char> Angle8;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
inline static Angle8 Angle8::Degrees(float angle) {
|
||||||
|
return (angle / 360.0F * 256.0F);
|
||||||
|
}
|
||||||
|
|
||||||
// template <> Angle8::AngleOf(float angle) {
|
// template <> Angle8::AngleOf(float angle) {
|
||||||
// if (!isfinite(angle)) {
|
// if (!isfinite(angle)) {
|
||||||
// value = 0;
|
// value = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user