BsDegree.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Math/BsDegree.h"
  4. #include "Math/BsMath.h"
  5. namespace bs
  6. {
  7. Degree::Degree(const Radian& r)
  8. :mDeg(r.valueDegrees())
  9. { }
  10. inline Degree Degree::wrap()
  11. {
  12. mDeg = fmod(mDeg, 360.0f);
  13. if (mDeg < 0)
  14. mDeg += 360.0f;
  15. return *this;
  16. }
  17. Degree& Degree::operator= (const Radian& r)
  18. {
  19. mDeg = r.valueDegrees(); return *this;
  20. }
  21. Degree Degree::operator+ (const Radian& r) const
  22. {
  23. return Degree (mDeg + r.valueDegrees());
  24. }
  25. Degree& Degree::operator+= (const Radian& r)
  26. {
  27. mDeg += r.valueDegrees(); return *this;
  28. }
  29. Degree Degree::operator- (const Radian& r) const
  30. {
  31. return Degree (mDeg - r.valueDegrees());
  32. }
  33. Degree& Degree::operator-= (const Radian& r)
  34. {
  35. mDeg -= r.valueDegrees(); return *this;
  36. }
  37. inline float Degree::valueRadians() const
  38. {
  39. return mDeg * Math::DEG2RAD;
  40. }
  41. }