diff options
Diffstat (limited to 'extern/bullet/BulletDynamics/Dynamics/RigidBody.cpp')
-rw-r--r-- | extern/bullet/BulletDynamics/Dynamics/RigidBody.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/extern/bullet/BulletDynamics/Dynamics/RigidBody.cpp b/extern/bullet/BulletDynamics/Dynamics/RigidBody.cpp index d3b105dc7f6..c0927a96915 100644 --- a/extern/bullet/BulletDynamics/Dynamics/RigidBody.cpp +++ b/extern/bullet/BulletDynamics/Dynamics/RigidBody.cpp @@ -4,12 +4,14 @@ #include "GEN_MinMax.h" #include <SimdTransformUtil.h> -float gRigidBodyDamping = 0.5f; +float gLinearAirDamping = 1.f; + static int uniqueId = 0; RigidBody::RigidBody( const MassProps& massProps,SimdScalar linearDamping,SimdScalar angularDamping,SimdScalar friction,SimdScalar restitution) : m_collisionShape(0), m_activationState1(1), + m_deactivationTime(0.f), m_hitFraction(1.f), m_gravity(0.0f, 0.0f, 0.0f), m_linearDamping(0.f), @@ -90,12 +92,13 @@ void RigidBody::setDamping(SimdScalar lin_damping, SimdScalar ang_damping) #include <stdio.h> + void RigidBody::applyForces(SimdScalar step) { applyCentralForce(m_gravity); - m_linearVelocity *= GEN_clamped((1.f - step * m_linearDamping), 0.0f, 1.0f); + m_linearVelocity *= GEN_clamped((1.f - step * gLinearAirDamping * m_linearDamping), 0.0f, 1.0f); m_angularVelocity *= GEN_clamped((1.f - step * m_angularDamping), 0.0f, 1.0f); } @@ -150,7 +153,11 @@ SimdQuaternion RigidBody::getOrientation() const void RigidBody::setCenterOfMassTransform(const SimdTransform& xform) { m_worldTransform = xform; - + SimdQuaternion orn; +// m_worldTransform.getBasis().getRotation(orn); +// orn.normalize(); +// m_worldTransform.setBasis(SimdMatrix3x3(orn)); + // m_worldTransform.getBasis().getRotation(m_orn1); updateInertiaTensor(); } |