make soft bodies more compatible with rigid body API: disable setCollisionShape (it would delete the shape passed in!)

This commit is contained in:
erwin.coumans
2008-09-21 15:19:54 +00:00
parent 7a72d76ef2
commit d2f7f9d25b
4 changed files with 9 additions and 3 deletions

View File

@@ -143,7 +143,7 @@ public:
virtual ~btCollisionObject();
void setCollisionShape(btCollisionShape* collisionShape)
virtual void setCollisionShape(btCollisionShape* collisionShape)
{
m_collisionShape = collisionShape;
m_rootCollisionShape = collisionShape;

View File

@@ -69,7 +69,7 @@ btSoftBody::btSoftBody(btSoftBodyWorldInfo* worldInfo,int node_count, const btV
pm->m_flags = fMaterial::Default;
/* Collision shape */
///for now, create a collision shape internally
setCollisionShape(new btSoftBodyCollisionShape(this));
m_collisionShape = new btSoftBodyCollisionShape(this);
m_collisionShape->setMargin(0.25);
/* Nodes */
const btScalar margin=getCollisionShape()->getMargin();

View File

@@ -606,6 +606,13 @@ public:
/* dtor */
virtual ~btSoftBody();
/* Check for existing link */
virtual void setCollisionShape(btCollisionShape* collisionShape)
{
//don't do anything, due to the internal shape hack: todo: fix this
}
bool checkLink( int node0,
int node1) const;
bool checkLink( const Node* node0,

View File

@@ -94,7 +94,6 @@ public:
virtual void setLocalScaling(const btVector3& /*scaling*/)
{
///na
btAssert(0);
}
virtual const btVector3& getLocalScaling() const
{