PhysicsUtils.h 1021 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright (c) 2008-2023 the Urho3D project
  2. // License: MIT
  3. /// \file
  4. /// @nobindfile
  5. #pragma once
  6. #include "../Math/Quaternion.h"
  7. #include "../Math/Vector3.h"
  8. #include <Bullet/LinearMath/btVector3.h>
  9. #include <Bullet/LinearMath/btQuaternion.h>
  10. namespace Urho3D
  11. {
  12. inline btVector3 ToBtVector3(const Vector3& vector)
  13. {
  14. return btVector3(vector.x_, vector.y_, vector.z_);
  15. }
  16. inline btQuaternion ToBtQuaternion(const Quaternion& quaternion)
  17. {
  18. return btQuaternion(quaternion.x_, quaternion.y_, quaternion.z_, quaternion.w_);
  19. }
  20. inline Vector3 ToVector3(const btVector3& vector)
  21. {
  22. return Vector3(vector.x(), vector.y(), vector.z());
  23. }
  24. inline Quaternion ToQuaternion(const btQuaternion& quaternion)
  25. {
  26. return Quaternion(quaternion.w(), quaternion.x(), quaternion.y(), quaternion.z());
  27. }
  28. inline bool HasWorldScaleChanged(const Vector3& oldWorldScale, const Vector3& newWorldScale)
  29. {
  30. Vector3 delta = newWorldScale - oldWorldScale;
  31. float dot = delta.DotProduct(delta);
  32. return dot > 0.01f;
  33. }
  34. }