BsRadian.cpp 1.1 KB

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