diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2011-03-17 00:20:24 +0300 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2011-03-17 00:20:24 +0300 |
commit | 6c972d634e54029a4711547ba5870269ba028286 (patch) | |
tree | f8aa244fe849b268242889e9f91a72a4310cc712 /source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp | |
parent | 67c7fa46db18a0a5101d9d138389a08794a4a707 (diff) |
BGE PhysicsConstraints.exportBulletFile improvement: also export the object names to .bullet files.
Diffstat (limited to 'source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp')
-rw-r--r-- | source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index 171f13e9b9f..f28ce953d0b 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -2797,8 +2797,26 @@ float CcdPhysicsEnvironment::getAppliedImpulse(int constraintid) void CcdPhysicsEnvironment::exportFile(const char* filename) { btDefaultSerializer* serializer = new btDefaultSerializer(); - m_dynamicsWorld->serialize(serializer); + + for (int i=0;i<m_dynamicsWorld->getNumCollisionObjects();i++) + { + + btCollisionObject* colObj = m_dynamicsWorld->getCollisionObjectArray()[i]; + + CcdPhysicsController* controller = static_cast<CcdPhysicsController*>(colObj->getUserPointer()); + if (controller) + { + const char* name = controller->getName(); + if (name) + { + serializer->registerNameForPointer(colObj,name); + } + } + } + + m_dynamicsWorld->serialize(serializer); + FILE* file = fopen(filename,"wb"); if (file) { |