I tried my best to figure out a basic soft body example from the Bullet demos, and came up with the following code which should create a "soft" cube:
Code: Select all
btSoftBodyWorldInfo m_softBodyWorldInfo;
m_softBodyWorldInfo.air_density = (btScalar)1.2;
m_softBodyWorldInfo.water_density = 0;
m_softBodyWorldInfo.water_offset = 0;
m_softBodyWorldInfo.water_normal = btVector3(0,0,0);
m_softBodyWorldInfo.m_gravity.setValue(0,-10,0);
m_softBodyWorldInfo.m_sparsesdf.Initialize();
m_softBodyWorldInfo.m_dispatcher = dynamicsWorld->getDispatcher();
m_softBodyWorldInfo.m_broadphase = dynamicsWorld->getBroadphase();
const btVector3 c[] = {
btVector3(-1,-1,-1),
btVector3(+1,-1,-1),
btVector3(-1,+1,-1),
btVector3(+1,+1,-1),
btVector3(-1,-1,+1),
btVector3(+1,-1,+1),
btVector3(-1,+1,+1),
btVector3(+1,+1,+1)
};
btSoftBody* softCube = btSoftBodyHelpers::CreateFromConvexHull(m_softBodyWorldInfo,c,8);
softCube->generateBendingConstraints(2);
dynamicsWorld->addSoftBody(softCube);