BsDegree.cpp 834 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "BsDegree.h"
  2. #include "BsMath.h"
  3. namespace BansheeEngine
  4. {
  5. Degree::Degree(const Radian& r)
  6. :mDeg(r.valueDegrees())
  7. { }
  8. inline Degree Degree::wrap()
  9. {
  10. mDeg = fmod(mDeg, 360.0f);
  11. if (mDeg < 0)
  12. mDeg += 360.0f;
  13. return *this;
  14. }
  15. Degree& Degree::operator= (const Radian& r)
  16. {
  17. mDeg = r.valueDegrees(); return *this;
  18. }
  19. Degree Degree::operator+ (const Radian& r) const
  20. {
  21. return Degree (mDeg + r.valueDegrees());
  22. }
  23. Degree& Degree::operator+= (const Radian& r)
  24. {
  25. mDeg += r.valueDegrees(); return *this;
  26. }
  27. Degree Degree::operator- (const Radian& r) const
  28. {
  29. return Degree (mDeg - r.valueDegrees());
  30. }
  31. Degree& Degree::operator-= (const Radian& r)
  32. {
  33. mDeg -= r.valueDegrees(); return *this;
  34. }
  35. inline float Degree::valueRadians() const
  36. {
  37. return mDeg * Math::DEG2RAD;
  38. }
  39. }