add two way coupled penetration resolution; not momentum conserving, but seem to work fine

This commit is contained in:
Xuchen Han
2019-07-12 13:26:58 -07:00
parent 98cd9a85e4
commit ac628f4d39

View File

@@ -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);
}
}
}
}
}