MathUtil.cpp 597 B

12345678910111213141516171819202122232425262728
  1. #include "Base.h"
  2. #include "MathUtil.h"
  3. namespace gameplay
  4. {
  5. void MathUtil::smooth(float* x, float target, float elapsedTime, float responseTime)
  6. {
  7. GP_ASSERT(x);
  8. if (elapsedTime > 0)
  9. {
  10. *x += (target - *x) * elapsedTime / (elapsedTime + responseTime);
  11. }
  12. }
  13. void MathUtil::smooth(float* x, float target, float elapsedTime, float riseTime, float fallTime)
  14. {
  15. GP_ASSERT(x);
  16. if (elapsedTime > 0)
  17. {
  18. float delta = target - *x;
  19. *x += delta * elapsedTime / (elapsedTime + (delta > 0 ? riseTime : fallTime));
  20. }
  21. }
  22. }