[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35580] trunk/blender/source/gameengine: BGE PhysicsConstraints.exportBulletFile improvement: also export the object names to .bullet files.
Erwin Coumans
blender at erwincoumans.com
Wed Mar 16 22:20:25 CET 2011
Revision: 35580
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35580
Author: erwin
Date: 2011-03-16 21:20:24 +0000 (Wed, 16 Mar 2011)
Log Message:
-----------
BGE PhysicsConstraints.exportBulletFile improvement: also export the object names to .bullet files.
Modified Paths:
--------------
trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.h
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.h
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
Modified: trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp 2011-03-16 21:05:24 UTC (rev 35579)
+++ trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp 2011-03-16 21:20:24 UTC (rev 35580)
@@ -524,4 +524,15 @@
// return false;
}
+
+const char* KX_BulletPhysicsController::getName()
+{
+ if (m_pObject)
+ {
+ KX_GameObject* gameobj = (KX_GameObject*) m_pObject->GetSGClientObject();
+ return gameobj->GetName();
+ }
+ return 0;
+}
+
#endif // USE_BULLET
Modified: trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.h 2011-03-16 21:05:24 UTC (rev 35579)
+++ trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.h 2011-03-16 21:20:24 UTC (rev 35580)
@@ -80,6 +80,8 @@
virtual bool Update(double time);
void* GetUserData() { return m_userdata;}
+ virtual const char* getName();
+
void
SetOption(
int option,
Modified: trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.h
===================================================================
--- trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.h 2011-03-16 21:05:24 UTC (rev 35579)
+++ trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.h 2011-03-16 21:20:24 UTC (rev 35580)
@@ -577,6 +577,10 @@
return m_parentCtrl;
}
+ virtual const char* getName()
+ {
+ return 0;
+ }
#ifdef WITH_CXX_GUARDEDALLOC
public:
Modified: trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
===================================================================
--- trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp 2011-03-16 21:05:24 UTC (rev 35579)
+++ trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp 2011-03-16 21:20:24 UTC (rev 35580)
@@ -2797,8 +2797,26 @@
void CcdPhysicsEnvironment::exportFile(const char* filename)
{
btDefaultSerializer* serializer = new btDefaultSerializer();
+
+
+ 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)
{
More information about the Bf-blender-cvs
mailing list