add two way coupled penetration resolution; not momentum conserving, but seem to work fine
This commit is contained in:
@@ -87,21 +87,22 @@ void btDeformableBodySolver::postStabilize()
|
||||
if (dp < 0)
|
||||
{
|
||||
c.m_node->m_x -= dp * cti.m_normal * c.m_c4;
|
||||
// c.m_node->m_x -= impulse * c.m_c2;
|
||||
|
||||
////
|
||||
// if (cti.m_colObj->getInternalType() == btCollisionObject::CO_RIGID_BODY)
|
||||
// {
|
||||
// if (rigidCol)
|
||||
// rigidCol->applyImpulse(impulse, c.m_c1);
|
||||
// }
|
||||
// else if (cti.m_colObj->getInternalType() == btCollisionObject::CO_FEATHERSTONE_LINK)
|
||||
// {
|
||||
// if (multibodyLinkCol)
|
||||
// {
|
||||
// double multiplier = 0.5;
|
||||
// multibodyLinkCol->m_multiBody->applyDeltaVeeMultiDof(deltaV, -impulse.length() * multiplier);
|
||||
// }
|
||||
// }
|
||||
if (cti.m_colObj->getInternalType() == btCollisionObject::CO_RIGID_BODY)
|
||||
{
|
||||
if (rigidCol)
|
||||
rigidCol->applyImpulse(impulse, c.m_c1);
|
||||
}
|
||||
else if (cti.m_colObj->getInternalType() == btCollisionObject::CO_FEATHERSTONE_LINK)
|
||||
{
|
||||
if (multibodyLinkCol)
|
||||
{
|
||||
double multiplier = 0.5;
|
||||
multibodyLinkCol->m_multiBody->applyDeltaVeeMultiDof(deltaV, -impulse.length() * multiplier);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user