Advertisement
dmitrysenkovich

Untitled

Aug 29th, 2014
263
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,34 @@
  6.     return a.x() * b.y() - b.x() * a.y();
  7.  }
  8.  
  9. +/**
  10. + * wrapAngle - Приводит значение угла к соответствующему значению из полуинтервала [-Pi, Pi)
  11. + */
  12. +inline double wrapAngle(double& angle)
  13. +{
  14. +   if ((angle >= -M_PI) && (angle < M_PI))
  15. +       return angle;
  16. +
  17. +   else if (angle > -M_PI)
  18. +       return wrapAngle(angle -= 2*M_PI);
  19. +   else
  20. +       return wrapAngle(angle += 2*M_PI);
  21.  }
  22.  
  23. +/**
  24. + * wrapAngle0_2Pi - Приводит значение угла к соответствующему значению из полуинтервала [0, 2*Pi)
  25. + */
  26. +inline double wrapAngle0_2Pi(double& angle)
  27. +{
  28. +   if ((angle >= 0) && (angle < 2*M_PI))
  29. +       return angle;
  30. +
  31. +   else if (angle > 0)
  32. +       return wrapAngle0_2Pi(angle -= 2*M_PI);
  33. +   else
  34. +       return wrapAngle0_2Pi(angle += 2*M_PI);
  35. +}
  36. +
  37. +}
  38. +
  39.  #endif
  40. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement