disable self-collision for btMultiBody with prismatic joint: the collision normals are conflicting (they assume 3d objects, but 2 bodies/links in a multi-body don't have the DOFs to resolve the collision, resulting in 'explosions' adding energy.

This commit is contained in:
erwin.coumans
2013-10-23 18:00:32 +00:00
parent 7285bd8390
commit e5590575a9

View File

@@ -196,7 +196,9 @@ void FeatherstoneMultiBodyDemo::initPhysics()
btMultiBodySettings settings;
settings.m_numLinks = 2;
settings.m_basePosition = btVector3 (60,29.5,-2)*scaling;
settings.m_isFixedBase = false;
settings.m_isFixedBase = false;
settings.m_disableParentCollision = true;//the self-collision has conflicting/non-resolvable contact normals
settings.m_usePrismatic = true;
settings.m_canSleep = true;
settings.m_createConstraints = true;
@@ -217,7 +219,9 @@ void FeatherstoneMultiBodyDemo::initPhysics()
settings.m_basePosition = btVector3 (-20,9.5,-settings.m_numLinks*4.f);
settings.m_isFixedBase = true;
settings.m_usePrismatic = true;
settings.m_usePrismatic = true;
settings.m_disableParentCollision = true;
btMultiBody* mbPrim= createFeatherstoneMultiBody(world, settings);
//btMultiBody* mbB = createFeatherstoneMultiBody(world, 15, btVector3 (0,29.5,-2), false,true,true);