dmitrysenkovich

Untitled

Aug 29th, 2014
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Index: OSGMath.h
  2. ===================================================================
  3. --- OSGMath.h   (revision 91664)
  4. +++ OSGMath.h   (working copy)
  5. @@ -70,6 +70,38 @@
  6.     return a.x() * b.y() - b.x() * a.y();
  7.  }
  8.  
  9. +/**
  10. + * wrapAngle - Приводит значение угла к соответствующему значению из полуинтервала [-Pi, Pi)
  11. + */
  12. +inline double wrapAngle(const double& angle)
  13. +{
  14. +   double wrappedAngle = angle;
  15. +   if (wrappedAngle < -M_PI)
  16. +       while (wrappedAngle < -M_PI)
  17. +           wrappedAngle += 2*M_PI;
  18. +   else if (wrappedAngle >= M_PI)
  19. +       while (wrappedAngle >= M_PI)
  20. +           wrappedAngle -= 2*M_PI;
  21. +
  22. +    return wrappedAngle;
  23.  }
  24.  
  25. +/**
  26. + * wrapAngle0_2Pi - Приводит значение угла к соответствующему значению из полуинтервала [0, 2*Pi)
  27. + */
  28. +inline double wrapAngle0_2Pi(const double& angle)
  29. +{
  30. +   double wrappedAngle = angle;
  31. +   if (wrappedAngle < 0)
  32. +       while (wrappedAngle < 0)
  33. +           wrappedAngle += 2*M_PI;
  34. +   else if (wrappedAngle >= 2*M_PI)
  35. +       while (wrappedAngle >= 2*M_PI)
  36. +           wrappedAngle -= 2*M_PI;
  37. +
  38. +    return wrappedAngle;
  39. +}
  40. +
  41. +}
  42. +
  43.  #endif
  44. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment