fix kinematic objects, see Issue 652
add m_rollingFriction to btRigidBody::btRigidBodyConstructionInfo
This commit is contained in:
@@ -526,7 +526,8 @@ int btSequentialImpulseConstraintSolver::getOrInitSolverBody(btCollisionObject&
|
|||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
btRigidBody* rb = btRigidBody::upcast(&body);
|
btRigidBody* rb = btRigidBody::upcast(&body);
|
||||||
if (rb && rb->getInvMass())
|
//convert both active and kinematic objects (for their velocity)
|
||||||
|
if (rb && (rb->getInvMass() || rb->isKinematicObject()))
|
||||||
{
|
{
|
||||||
solverBodyIdA = m_tmpSolverBodyPool.size();
|
solverBodyIdA = m_tmpSolverBodyPool.size();
|
||||||
btSolverBody& solverBody = m_tmpSolverBodyPool.expand();
|
btSolverBody& solverBody = m_tmpSolverBodyPool.expand();
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ void btRigidBody::setupRigidBody(const btRigidBody::btRigidBodyConstructionInfo&
|
|||||||
|
|
||||||
//moved to btCollisionObject
|
//moved to btCollisionObject
|
||||||
m_friction = constructionInfo.m_friction;
|
m_friction = constructionInfo.m_friction;
|
||||||
|
m_rollingFriction = constructionInfo.m_rollingFriction;
|
||||||
m_restitution = constructionInfo.m_restitution;
|
m_restitution = constructionInfo.m_restitution;
|
||||||
|
|
||||||
setCollisionShape( constructionInfo.m_collisionShape );
|
setCollisionShape( constructionInfo.m_collisionShape );
|
||||||
|
|||||||
@@ -129,6 +129,9 @@ public:
|
|||||||
|
|
||||||
///best simulation results when friction is non-zero
|
///best simulation results when friction is non-zero
|
||||||
btScalar m_friction;
|
btScalar m_friction;
|
||||||
|
///the m_rollingFriction prevents rounded shapes, such as spheres, cylinders and capsules from rolling forever.
|
||||||
|
///See Bullet/Demos/RollingFrictionDemo for usage
|
||||||
|
btScalar m_rollingFriction;
|
||||||
///best simulation results using zero restitution.
|
///best simulation results using zero restitution.
|
||||||
btScalar m_restitution;
|
btScalar m_restitution;
|
||||||
|
|
||||||
@@ -151,6 +154,7 @@ public:
|
|||||||
m_linearDamping(btScalar(0.)),
|
m_linearDamping(btScalar(0.)),
|
||||||
m_angularDamping(btScalar(0.)),
|
m_angularDamping(btScalar(0.)),
|
||||||
m_friction(btScalar(0.5)),
|
m_friction(btScalar(0.5)),
|
||||||
|
m_rollingFriction(btScalar(0)),
|
||||||
m_restitution(btScalar(0.)),
|
m_restitution(btScalar(0.)),
|
||||||
m_linearSleepingThreshold(btScalar(0.8)),
|
m_linearSleepingThreshold(btScalar(0.8)),
|
||||||
m_angularSleepingThreshold(btScalar(1.f)),
|
m_angularSleepingThreshold(btScalar(1.f)),
|
||||||
|
|||||||
Reference in New Issue
Block a user