add naive implementation of self collision

This commit is contained in:
Xuchen Han
2019-09-20 10:11:13 -07:00
parent be7383cc03
commit 416e516735
10 changed files with 296 additions and 3 deletions

View File

@@ -3515,6 +3515,18 @@ void btSoftBody::defaultCollisionHandler(btSoftBody* psb)
docollide.psb[1]->m_fdbvt.m_root,
docollide);
}
else
{
btSoftColliders::CollideVF_DD docollide;
docollide.mrg = getCollisionShape()->getMargin() +
psb->getCollisionShape()->getMargin();
/* psb0 nodes vs psb0 faces */
docollide.psb[0] = this;
docollide.psb[1] = psb;
docollide.psb[0]->m_ndbvt.collideTT(docollide.psb[0]->m_ndbvt.m_root,
docollide.psb[1]->m_fdbvt.m_root,
docollide);
}
}
break;
default: