remove btContinuousDynamicsWorld, it is obsolete and was never completed.

If you need tunneling prevention, one option is to use the CCD motion clamping in btDiscreteDynamicsWorld. See also Bullet/Demos/CcdPhysicsDemo.
You can use an embedded sphere that prevents tunneling, using the following settings:

		body->setCcdMotionThreshold(0.5);
		body->setCcdSweptSphereRadius(0.9f);


Add a camera zoom setting for the demos, thanks to ejtttje, fixes Issue 543
This commit is contained in:
erwin.coumans
2011-09-15 18:47:13 +00:00
parent 69a932f13e
commit 654fe7872a
9 changed files with 10 additions and 256 deletions

View File

@@ -74,7 +74,8 @@ m_modifierKeys(0),
m_scaleBottom(0.5f),
m_scaleFactor(2.f),
m_cameraUp(0,1,0),
m_forwardAxis(2),
m_forwardAxis(2),
m_zoomStepSize(0.4),
m_glutScreenWidth(0),
m_glutScreenHeight(0),
m_frustumZNear(1.f),
@@ -271,14 +272,14 @@ void DemoApplication::stepBack()
}
void DemoApplication::zoomIn()
{
m_cameraDistance -= btScalar(0.4); updateCamera();
m_cameraDistance -= btScalar(m_zoomStepSize); updateCamera();
if (m_cameraDistance < btScalar(0.1))
m_cameraDistance = btScalar(0.1);
}
void DemoApplication::zoomOut()
{
m_cameraDistance += btScalar(0.4); updateCamera();
m_cameraDistance += btScalar(m_zoomStepSize); updateCamera();
}

View File

@@ -78,6 +78,7 @@ protected:
float m_scaleFactor;
btVector3 m_cameraUp;
int m_forwardAxis;
float m_zoomStepSize;
int m_glutScreenWidth;
int m_glutScreenHeight;

View File

@@ -291,8 +291,8 @@ public:
if (softBodyData->m_pose)
{
psb->m_pose.m_aqq.deSerializeFloat( softBodyData->m_pose->m_aqq);
psb->m_pose.m_bframe = softBodyData->m_pose->m_bframe;
psb->m_pose.m_bvolume = softBodyData->m_pose->m_bvolume;
psb->m_pose.m_bframe = (softBodyData->m_pose->m_bframe!=0);
psb->m_pose.m_bvolume = (softBodyData->m_pose->m_bvolume!=0);
psb->m_pose.m_com.deSerializeFloat(softBodyData->m_pose->m_com);
psb->m_pose.m_pos.resize(softBodyData->m_pose->m_numPositions);
@@ -349,9 +349,9 @@ public:
psb->m_clusters[i]->m_adamping = softBodyData->m_clusters[i].m_adamping;
psb->m_clusters[i]->m_av.deSerializeFloat(softBodyData->m_clusters[i].m_av);
psb->m_clusters[i]->m_clusterIndex = softBodyData->m_clusters[i].m_clusterIndex;
psb->m_clusters[i]->m_collide = softBodyData->m_clusters[i].m_collide;
psb->m_clusters[i]->m_collide = (softBodyData->m_clusters[i].m_collide!=0);
psb->m_clusters[i]->m_com.deSerializeFloat(softBodyData->m_clusters[i].m_com);
psb->m_clusters[i]->m_containsAnchor = softBodyData->m_clusters[i].m_containsAnchor;
psb->m_clusters[i]->m_containsAnchor = (softBodyData->m_clusters[i].m_containsAnchor!=0);
psb->m_clusters[i]->m_dimpulses[0].deSerializeFloat(softBodyData->m_clusters[i].m_dimpulses[0]);
psb->m_clusters[i]->m_dimpulses[1].deSerializeFloat(softBodyData->m_clusters[i].m_dimpulses[1]);