BsRadian.cpp 1.1 KB

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