worked a bit more on the serialization, and added a preliminary SerializeDemo.
This commit is contained in:
@@ -1235,6 +1235,25 @@ void btCollisionWorld::debugDrawWorld()
|
||||
}
|
||||
|
||||
|
||||
void btCollisionWorld::serializeCollisionObjects(btDefaultSerializer* serializer)
|
||||
{
|
||||
int i;
|
||||
//serialize all collision objects
|
||||
for (i=0;i<m_collisionObjects.size();i++)
|
||||
{
|
||||
btCollisionObject* colObj = m_collisionObjects[i];
|
||||
if (colObj->getInternalType() == btCollisionObject::CO_COLLISION_OBJECT)
|
||||
{
|
||||
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_COLLISIONOBJECT_CODE;
|
||||
chunk->m_oldPtr = colObj;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void btCollisionWorld::serialize(btDefaultSerializer* serializer)
|
||||
{
|
||||
@@ -1252,20 +1271,7 @@ void btCollisionWorld::serialize(btDefaultSerializer* serializer)
|
||||
serializer->initDNA((const char*)sBulletDNAstr,sBulletDNAlen);
|
||||
}
|
||||
|
||||
int i;
|
||||
|
||||
//serialize all collision objects
|
||||
for (i=0;i<m_collisionObjects.size();i++)
|
||||
{
|
||||
btCollisionObject* colObj = m_collisionObjects[i];
|
||||
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_COLLISIONOBJECT_CODE;
|
||||
chunk->m_oldPtr = colObj;
|
||||
}
|
||||
|
||||
serializeCollisionObjects(serializer);
|
||||
|
||||
#if 0
|
||||
{
|
||||
|
||||
@@ -100,6 +100,8 @@ protected:
|
||||
///it is true by default, because it is error-prone (setting the position of static objects wouldn't update their AABB)
|
||||
bool m_forceUpdateAllAabbs;
|
||||
|
||||
void serializeCollisionObjects(btDefaultSerializer* serializer);
|
||||
|
||||
public:
|
||||
|
||||
//this constructor doesn't own the dispatcher and paircache/broadphase
|
||||
@@ -422,8 +424,8 @@ public:
|
||||
m_forceUpdateAllAabbs = forceUpdateAllAabbs;
|
||||
}
|
||||
|
||||
///Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (to be added in the Bullet/Extras)
|
||||
void serialize(btDefaultSerializer* serializer);
|
||||
///Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (Bullet/Demos/SerializeDemo)
|
||||
virtual void serialize(btDefaultSerializer* serializer);
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user