fixed a few issues with BulletColladaConverter/ColladaConverter.cpp, related to constraints.

This commit is contained in:
erwin.coumans
2008-06-05 05:09:47 +00:00
parent 35083aae4a
commit 8634b6ba14

View File

@@ -646,6 +646,9 @@ btRigidBodyColladaInfo* ColladaConverter::findRigidBodyColladaInfo(const btRigid
{
///we assume that the btRigidBody getUid matches btRigidBodyColladaInfo getUid
if (!body->getBroadphaseProxy())
return 0;
int uid = body->getBroadphaseProxy()->getUid();
btHashKeyPtr<btRigidBodyColladaInfo*> tmpKey(uid);
btRigidBodyColladaInfo** rbciPtr = this->m_rbUserInfoHashMap.find(tmpKey);
@@ -1822,7 +1825,7 @@ domNode* ColladaConverter::addNode (btRigidBody* rb, const char* nodeName, const
domRigid_constraint* ColladaConverter::addConstraint (btTypedConstraint* constraint, const char* constraintName)
{
if (!constraint->getConstraintType() != D6_CONSTRAINT_TYPE)
if (constraint->getConstraintType() != D6_CONSTRAINT_TYPE)
return NULL;
btGeneric6DofConstraint* g6c = (btGeneric6DofConstraint*)constraint;
@@ -3080,6 +3083,8 @@ btTypedConstraint* ColladaConverter::createUniversalD6Constraint(
{
btRigidBody::btRigidBodyConstructionInfo cinfo(0,0,0);
bodyOther = new btRigidBody(cinfo);
//needs to be in the world!
m_dynamicsWorld->addRigidBody(bodyOther);
bodyOther->setWorldTransform(bodyRef->getWorldTransform());
localAttachmentOther = localAttachmentFrameRef;