[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