diff --git a/Angle.cpp b/Angle.cpp index 4588736..7788047 100644 --- a/Angle.cpp +++ b/Angle.cpp @@ -129,12 +129,12 @@ float AngleOf::InRadians() const { //===== Generic -template -const AngleOf AngleOf::zero = AngleOf(); -template -const AngleOf AngleOf::deg90 = AngleOf::Degrees(90); -template -const AngleOf AngleOf::deg180 = AngleOf::Degrees(180); +// template +// const AngleOf AngleOf::zero = AngleOf(); +// template +// const AngleOf AngleOf::deg90 = AngleOf::Degrees(90); +// template +// const AngleOf AngleOf::deg180 = AngleOf::Degrees(180); template bool AngleOf::operator==(const AngleOf a) const { diff --git a/Angle.h b/Angle.h index 8b02505..90531ab 100644 --- a/Angle.h +++ b/Angle.h @@ -21,9 +21,9 @@ class AngleOf { static AngleOf Degrees(float f); static AngleOf Radians(float f); - const static AngleOf zero; - const static AngleOf deg90; - const static AngleOf deg180; + // const static AngleOf zero; + // const static AngleOf deg90; + // const static AngleOf deg180; float InDegrees() const; float InRadians() const; diff --git a/Direction.cpp b/Direction.cpp index 8d83b47..882ea32 100644 --- a/Direction.cpp +++ b/Direction.cpp @@ -39,19 +39,19 @@ const DirectionOf DirectionOf::forward = DirectionOf(AngleOf(), AngleOf()); template const DirectionOf DirectionOf::back = - DirectionOf(AngleOf::deg180, AngleOf()); + DirectionOf(AngleOf::Degrees(180), AngleOf()); template const DirectionOf DirectionOf::up = - DirectionOf(AngleOf(), AngleOf::deg90); + DirectionOf(AngleOf(), AngleOf::Degrees(90)); template const DirectionOf DirectionOf::down = - DirectionOf(AngleOf(), -AngleOf::deg90); + DirectionOf(AngleOf(), AngleOf::Degrees(-90)); template const DirectionOf DirectionOf::left = - DirectionOf(-AngleOf::deg90, AngleOf()); + DirectionOf(AngleOf::Degrees(-90), AngleOf()); template const DirectionOf DirectionOf::right = - DirectionOf(AngleOf::deg90, AngleOf()); + DirectionOf(AngleOf::Degrees(90), AngleOf()); template Vector3 Passer::LinearAlgebra::DirectionOf::ToVector3() const { @@ -68,7 +68,7 @@ DirectionOf Passer::LinearAlgebra::DirectionOf::FromVector3(Vector3 v) { v.Right(), v.Forward()); // AngleOf::Radians(atan2f(v.Right(), v.Forward())); d.vertical = - -AngleOf::deg90 - + AngleOf::Degrees(-90) - AngleOf::Acos( v.Up()); // AngleOf::Radians(-(0.5f * pi) - acosf(v.Up())); d.Normalize(); @@ -97,8 +97,8 @@ bool Passer::LinearAlgebra::DirectionOf::operator==( template DirectionOf Passer::LinearAlgebra::DirectionOf::operator-() const { - DirectionOf r = - DirectionOf(this->horizontal + AngleOf::deg180, -this->vertical); + DirectionOf r = DirectionOf(this->horizontal + AngleOf::Degrees(180), + -this->vertical); return r; } @@ -112,10 +112,10 @@ Vector3 DirectionOf::ToVector3() { template void DirectionOf::Normalize() { - if (this->vertical > AngleOf::deg90 || - this->vertical < -AngleOf::deg90) { - this->horizontal += AngleOf::deg180; - this->vertical = AngleOf::deg180 - this->vertical; + if (this->vertical > AngleOf::Degrees(90) || + this->vertical < AngleOf::Degrees(-90)) { + this->horizontal += AngleOf::Degrees(180); + this->vertical = AngleOf::Degrees(180) - this->vertical; } } diff --git a/test/SwingTwistSingle_test.cc b/test/SwingTwistSingle_test.cc index 5ed238b..14f4b81 100644 --- a/test/SwingTwistSingle_test.cc +++ b/test/SwingTwistSingle_test.cc @@ -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 \ No newline at end of file