PhysicsHingeConstraint.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * PhysicsHingeConstraint.cpp
  3. */
  4. #include "PhysicsHingeConstraint.h"
  5. namespace gameplay
  6. {
  7. void PhysicsHingeConstraint::setLimits(float minAngle, float maxAngle, float softness, float biasFactor, float relaxationFactor)
  8. {
  9. ((btHingeConstraint*)_constraint)->setLimit(minAngle, maxAngle, softness, biasFactor, relaxationFactor);
  10. }
  11. PhysicsHingeConstraint::PhysicsHingeConstraint(PhysicsRigidBody* a, const Quaternion& rotationOffsetA, const Vector3& translationOffsetA,
  12. PhysicsRigidBody* b, const Quaternion& rotationOffsetB, const Vector3& translationOffsetB)
  13. {
  14. if (b)
  15. {
  16. btTransform frameInA(btQuaternion(rotationOffsetA.x, rotationOffsetA.y, rotationOffsetA.z, rotationOffsetA.w),
  17. btVector3(translationOffsetA.x, translationOffsetA.y, translationOffsetA.z));
  18. btTransform frameInB(btQuaternion(rotationOffsetB.x, rotationOffsetB.y, rotationOffsetB.z, rotationOffsetB.w),
  19. btVector3(translationOffsetB.x, translationOffsetB.y, translationOffsetB.z));
  20. _constraint = new btHingeConstraint(*a->_body, *b->_body, frameInA, frameInB);
  21. }
  22. else
  23. {
  24. btTransform frameInA(btQuaternion(rotationOffsetA.x, rotationOffsetA.y, rotationOffsetA.z, rotationOffsetA.w),
  25. btVector3(translationOffsetA.x, translationOffsetA.y, translationOffsetA.z));
  26. _constraint = new btHingeConstraint(*a->_body, frameInA);
  27. }
  28. }
  29. PhysicsHingeConstraint::~PhysicsHingeConstraint()
  30. {
  31. // DUMMY FUNCTION
  32. }
  33. }