more work on serialization, work-in-progress

This commit is contained in:
erwin.coumans
2010-01-23 00:04:58 +00:00
parent 76eccc39fc
commit 0f707603f1
18 changed files with 700 additions and 344 deletions

View File

@@ -1079,7 +1079,7 @@ const btTypedConstraint* btDiscreteDynamicsWorld::getConstraint(int index) const
void btDiscreteDynamicsWorld::serializeRigidBodies(btDefaultSerializer* serializer)
void btDiscreteDynamicsWorld::serializeRigidBodies(btSerializer* serializer)
{
int i;
//serialize all collision objects
@@ -1091,34 +1091,21 @@ void btDiscreteDynamicsWorld::serializeRigidBodies(btDefaultSerializer* serializ
int len = colObj->calculateSerializeBufferSize();
btChunk* chunk = serializer->allocate(len,1);
const char* structType = colObj->serialize(chunk->m_oldPtr);
chunk->m_dna_nr = serializer->getReverseType(structType);
chunk->m_chunkCode = BT_RIGIDBODY_CODE;
chunk->m_oldPtr = colObj;
serializer->finalizeChunk(chunk,structType,BT_RIGIDBODY_CODE,colObj);
}
}
}
void btDiscreteDynamicsWorld::serialize(btDefaultSerializer* serializer)
void btDiscreteDynamicsWorld::serialize(btSerializer* serializer)
{
const bool VOID_IS_8 = ((sizeof(void*)==8));
if (VOID_IS_8)
{
//64bit not yet supported (soon)
btAssert(0);
return;
} else
{
serializer->initDNA((const char*)sBulletDNAstr,sBulletDNAlen);
}
serializer->startSerialization();
serializeRigidBodies(serializer);
serializeCollisionObjects(serializer);
serializer->writeDNA();
serializer->finishSerialization();
}

View File

@@ -77,7 +77,7 @@ protected:
virtual void saveKinematicState(btScalar timeStep);
void serializeRigidBodies(btDefaultSerializer* serializer);
void serializeRigidBodies(btSerializer* serializer);
public:
@@ -191,7 +191,7 @@ public:
}
///Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo)
virtual void serialize(btDefaultSerializer* serializer);
virtual void serialize(btSerializer* serializer);
};