Removes Angle::deg90/180 because of issues
This commit is contained in:
parent
0a07b23e96
commit
edbb4b1ffc
12
Angle.cpp
12
Angle.cpp
@ -129,12 +129,12 @@ float AngleOf<signed char>::InRadians() const {
|
||||
|
||||
//===== Generic
|
||||
|
||||
template <typename T>
|
||||
const AngleOf<T> AngleOf<T>::zero = AngleOf<T>();
|
||||
template <typename T>
|
||||
const AngleOf<T> AngleOf<T>::deg90 = AngleOf<T>::Degrees(90);
|
||||
template <typename T>
|
||||
const AngleOf<T> AngleOf<T>::deg180 = AngleOf<T>::Degrees(180);
|
||||
// template <typename T>
|
||||
// const AngleOf<T> AngleOf<T>::zero = AngleOf<T>();
|
||||
// template <typename T>
|
||||
// const AngleOf<T> AngleOf<T>::deg90 = AngleOf<T>::Degrees(90);
|
||||
// template <typename T>
|
||||
// const AngleOf<T> AngleOf<T>::deg180 = AngleOf<T>::Degrees(180);
|
||||
|
||||
template <typename T>
|
||||
bool AngleOf<T>::operator==(const AngleOf<T> a) const {
|
||||
|
6
Angle.h
6
Angle.h
@ -21,9 +21,9 @@ class AngleOf {
|
||||
static AngleOf<T> Degrees(float f);
|
||||
static AngleOf<T> Radians(float f);
|
||||
|
||||
const static AngleOf<T> zero;
|
||||
const static AngleOf<T> deg90;
|
||||
const static AngleOf<T> deg180;
|
||||
// const static AngleOf<T> zero;
|
||||
// const static AngleOf<T> deg90;
|
||||
// const static AngleOf<T> deg180;
|
||||
|
||||
float InDegrees() const;
|
||||
float InRadians() const;
|
||||
|
@ -39,19 +39,19 @@ const DirectionOf<T> DirectionOf<T>::forward =
|
||||
DirectionOf<T>(AngleOf<T>(), AngleOf<T>());
|
||||
template <typename T>
|
||||
const DirectionOf<T> DirectionOf<T>::back =
|
||||
DirectionOf<T>(AngleOf<T>::deg180, AngleOf<T>());
|
||||
DirectionOf<T>(AngleOf<T>::Degrees(180), AngleOf<T>());
|
||||
template <typename T>
|
||||
const DirectionOf<T> DirectionOf<T>::up =
|
||||
DirectionOf<T>(AngleOf<T>(), AngleOf<T>::deg90);
|
||||
DirectionOf<T>(AngleOf<T>(), AngleOf<T>::Degrees(90));
|
||||
template <typename T>
|
||||
const DirectionOf<T> DirectionOf<T>::down =
|
||||
DirectionOf<T>(AngleOf<T>(), -AngleOf<T>::deg90);
|
||||
DirectionOf<T>(AngleOf<T>(), AngleOf<T>::Degrees(-90));
|
||||
template <typename T>
|
||||
const DirectionOf<T> DirectionOf<T>::left =
|
||||
DirectionOf<T>(-AngleOf<T>::deg90, AngleOf<T>());
|
||||
DirectionOf<T>(AngleOf<T>::Degrees(-90), AngleOf<T>());
|
||||
template <typename T>
|
||||
const DirectionOf<T> DirectionOf<T>::right =
|
||||
DirectionOf<T>(AngleOf<T>::deg90, AngleOf<T>());
|
||||
DirectionOf<T>(AngleOf<T>::Degrees(90), AngleOf<T>());
|
||||
|
||||
template <typename T>
|
||||
Vector3 Passer::LinearAlgebra::DirectionOf<T>::ToVector3() const {
|
||||
@ -68,7 +68,7 @@ DirectionOf<T> Passer::LinearAlgebra::DirectionOf<T>::FromVector3(Vector3 v) {
|
||||
v.Right(),
|
||||
v.Forward()); // AngleOf<T>::Radians(atan2f(v.Right(), v.Forward()));
|
||||
d.vertical =
|
||||
-AngleOf<T>::deg90 -
|
||||
AngleOf<T>::Degrees(-90) -
|
||||
AngleOf<T>::Acos(
|
||||
v.Up()); // AngleOf<T>::Radians(-(0.5f * pi) - acosf(v.Up()));
|
||||
d.Normalize();
|
||||
@ -97,8 +97,8 @@ bool Passer::LinearAlgebra::DirectionOf<T>::operator==(
|
||||
|
||||
template <typename T>
|
||||
DirectionOf<T> Passer::LinearAlgebra::DirectionOf<T>::operator-() const {
|
||||
DirectionOf<T> r =
|
||||
DirectionOf<T>(this->horizontal + AngleOf<T>::deg180, -this->vertical);
|
||||
DirectionOf<T> r = DirectionOf<T>(this->horizontal + AngleOf<T>::Degrees(180),
|
||||
-this->vertical);
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -112,10 +112,10 @@ Vector3 DirectionOf<T>::ToVector3() {
|
||||
|
||||
template <typename T>
|
||||
void DirectionOf<T>::Normalize() {
|
||||
if (this->vertical > AngleOf<T>::deg90 ||
|
||||
this->vertical < -AngleOf<T>::deg90) {
|
||||
this->horizontal += AngleOf<T>::deg180;
|
||||
this->vertical = AngleOf<T>::deg180 - this->vertical;
|
||||
if (this->vertical > AngleOf<T>::Degrees(90) ||
|
||||
this->vertical < AngleOf<T>::Degrees(-90)) {
|
||||
this->horizontal += AngleOf<T>::Degrees(180);
|
||||
this->vertical = AngleOf<T>::Degrees(180) - this->vertical;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,6 +93,11 @@ TEST(SwingTwistSingle, AngleAxis) {
|
||||
s = SwingTwistSingle::Degrees(0, 0, -90);
|
||||
EXPECT_LT(SwingTwistSingle::Angle(r, s), AngleSingle::Degrees(10e-2f))
|
||||
<< "270 up";
|
||||
|
||||
auto r16 = SwingTwist16::AngleAxis(13, Direction16::down);
|
||||
auto s16 = SwingTwist16::Degrees(-13, 0, 0);
|
||||
EXPECT_LT(SwingTwist16::Angle(r16, s16), Angle16::Degrees(10e-2f))
|
||||
<< "270 up";
|
||||
}
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user