+ fix bug in SoftDemo: use removeRigidBody for rigid bodies, instead of removeCollisionObject
+ use default convex drawing instead of special cylinder drawing (caps are wrongly drawn) + allow camera translation using middle-mouse button in SoftDemo + add/removeCollisionObject virtual Thanks Ola for this suggestion
This commit is contained in:
@@ -683,6 +683,7 @@ void GL_ShapeDrawer::drawOpenGL(btScalar* m, const btCollisionShape* shape, cons
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
case CYLINDER_SHAPE_PROXYTYPE:
|
||||
{
|
||||
const btCylinderShape* cylinder = static_cast<const btCylinderShape*>(shape);
|
||||
@@ -696,6 +697,7 @@ void GL_ShapeDrawer::drawOpenGL(btScalar* m, const btCollisionShape* shape, cons
|
||||
|
||||
break;
|
||||
}
|
||||
*/
|
||||
|
||||
case MULTI_SPHERE_SHAPE_PROXYTYPE:
|
||||
{
|
||||
|
||||
@@ -1272,7 +1272,11 @@ void SoftDemo::clientResetScene()
|
||||
getSoftDynamicsWorld()->removeSoftBody(softBody);
|
||||
} else
|
||||
{
|
||||
m_dynamicsWorld->removeCollisionObject(obj);
|
||||
btRigidBody* body = btRigidBody::upcast(obj);
|
||||
if (body)
|
||||
m_dynamicsWorld->removeRigidBody(body);
|
||||
else
|
||||
m_dynamicsWorld->removeCollisionObject(obj);
|
||||
}
|
||||
delete obj;
|
||||
}
|
||||
@@ -1349,8 +1353,6 @@ void SoftDemo::renderme()
|
||||
ps/=nps;
|
||||
if(m_autocam)
|
||||
m_cameraTargetPosition+=(ps-m_cameraTargetPosition)*0.05;
|
||||
else
|
||||
m_cameraTargetPosition=btVector3(0,0,0);
|
||||
/* Anm */
|
||||
if(!isIdle())
|
||||
m_animtime=m_clock.getTimeMilliseconds()/1000.f;
|
||||
|
||||
@@ -377,7 +377,7 @@ public:
|
||||
const btTransform& colObjWorldTransform,
|
||||
ConvexResultCallback& resultCallback, btScalar allowedPenetration);
|
||||
|
||||
void addCollisionObject(btCollisionObject* collisionObject,short int collisionFilterGroup=btBroadphaseProxy::DefaultFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter);
|
||||
virtual void addCollisionObject(btCollisionObject* collisionObject,short int collisionFilterGroup=btBroadphaseProxy::DefaultFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter);
|
||||
|
||||
btCollisionObjectArray& getCollisionObjectArray()
|
||||
{
|
||||
@@ -390,7 +390,7 @@ public:
|
||||
}
|
||||
|
||||
|
||||
void removeCollisionObject(btCollisionObject* collisionObject);
|
||||
virtual void removeCollisionObject(btCollisionObject* collisionObject);
|
||||
|
||||
virtual void performDiscreteCollisionDetection();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user