diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2006-12-04 07:31:34 +0300 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2006-12-04 07:31:34 +0300 |
commit | f22ee3f86f3291eeba0346e9d5bc0e412366238e (patch) | |
tree | a882fb425507682498035b3d6739d3538cf072f3 /extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h | |
parent | 2ec5d00da91848ce8c56d383a23a35b76243b956 (diff) |
added some 'angularFactor' for character control (to avoid rotation)
Diffstat (limited to 'extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h')
-rw-r--r-- | extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h b/extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h index c5fecdb87a6..49b8525149d 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h @@ -47,6 +47,7 @@ class btRigidBody : public btCollisionObject btVector3 m_linearVelocity; btVector3 m_angularVelocity; btScalar m_inverseMass; + btScalar m_angularFactor; btVector3 m_gravity; btVector3 m_invInertiaLocal; @@ -159,7 +160,10 @@ public: if (m_inverseMass != 0.f) { applyCentralImpulse(impulse); - applyTorqueImpulse(rel_pos.cross(impulse)); + if (m_angularFactor) + { + applyTorqueImpulse(rel_pos.cross(impulse)*m_angularFactor); + } } } @@ -169,7 +173,10 @@ public: if (m_inverseMass != 0.f) { m_linearVelocity += linearComponent*impulseMagnitude; - m_angularVelocity += angularComponent*impulseMagnitude; + if (m_angularFactor) + { + m_angularVelocity += angularComponent*impulseMagnitude*m_angularFactor; + } } } @@ -321,6 +328,14 @@ public: int m_contactSolverType; int m_frictionSolverType; + void setAngularFactor(float angFac) + { + m_angularFactor = angFac; + } + float getAngularFactor() const + { + return m_angularFactor; + } int m_debugBodyId; |