[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19605] trunk/blender/source/gameengine: small bge edits

Campbell Barton ideasman42 at gmail.com
Wed Apr 8 19:40:09 CEST 2009


Revision: 19605
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19605
Author:   campbellbarton
Date:     2009-04-08 19:40:09 +0200 (Wed, 08 Apr 2009)

Log Message:
-----------
small bge edits
- Only try and remove light objects from the light list.
- Only loop over mesh verts once when getting the bounding box
- dont return None from python attribute localInertia when theres no physics objects. better return a vector still.
- add names to send message PyArg_ParseTuple functions.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp

Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2009-04-08 17:32:56 UTC (rev 19604)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2009-04-08 17:40:09 UTC (rev 19605)
@@ -1120,6 +1120,7 @@
 	BoundBox *bb;
 	MT_Point3 min, max;
 	float mloc[3], msize[3];
+	float radius=0.0f, vert_radius, *co;
 	int a;
 	
 	if(me->bb==0) me->bb= (struct BoundBox *)MEM_callocN(sizeof(BoundBox), "boundbox");
@@ -1132,7 +1133,15 @@
 	
 	mvert= me->mvert;
 	for(a=0; a<me->totvert; a++, mvert++) {
-		DO_MINMAX(mvert->co, min, max);
+		co= mvert->co;
+		
+		/* bounds */
+		DO_MINMAX(co, min, max);
+		
+		/* radius */
+		vert_radius= co[0]*co[0] + co[1]*co[1] + co[2]*co[2];
+		if (vert_radius > radius)
+			radius= vert_radius;
 	}
 		
 	if(me->totvert) {
@@ -1158,13 +1167,6 @@
 	bb->vec[0][2]=bb->vec[3][2]=bb->vec[4][2]=bb->vec[7][2]= loc[2]-size[2];
 	bb->vec[1][2]=bb->vec[2][2]=bb->vec[5][2]=bb->vec[6][2]= loc[2]+size[2];
 
-	float radius = 0;
-	for (a=0, mvert = me->mvert; a < me->totvert; a++, mvert++)
-	{
-		float vert_radius = MT_Vector3(mvert->co).length2();
-		if (vert_radius > radius)
-			radius = vert_radius;
-	} 
 	return sqrt(radius);
 }
 		

Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2009-04-08 17:32:56 UTC (rev 19604)
+++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2009-04-08 17:40:09 UTC (rev 19605)
@@ -1325,7 +1325,7 @@
 	{
 		return PyObjectFrom(self->GetPhysicsController()->GetLocalInertia());
 	}
-	Py_RETURN_NONE;
+	return Py_BuildValue("fff", 0.0f, 0.0f, 0.0f);
 }
 
 PyObject* KX_GameObject::pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
@@ -2349,7 +2349,7 @@
 	char* to = "";
 	const STR_String& from = GetName();
 
-	if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to))
+	if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to))
 		return NULL;
 
 	KX_GetActiveScene()->GetNetworkScene()->SendMessage(to, from, subject, body);

Modified: trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2009-04-08 17:32:56 UTC (rev 19604)
+++ trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2009-04-08 17:40:09 UTC (rev 19605)
@@ -184,7 +184,7 @@
 	char* to = "";
 	char* from = "";
 
-	if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to, &from))
+	if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to, &from))
 		return NULL;
 
 	gp_KetsjiScene->GetNetworkScene()->SendMessage(to, from, subject, body);

Modified: trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2009-04-08 17:32:56 UTC (rev 19604)
+++ trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2009-04-08 17:40:09 UTC (rev 19605)
@@ -956,7 +956,7 @@
 	
 	newobj->RemoveMeshes();
 	ret = 1;
-	if (m_lightlist->RemoveValue(newobj)) // TODO - use newobj->IsLight() test when its merged in from apricot. - Campbell
+	if (newobj->IsLight() && m_lightlist->RemoveValue(newobj))
 		ret = newobj->Release();
 	if (m_objectlist->RemoveValue(newobj))
 		ret = newobj->Release();





More information about the Bf-blender-cvs mailing list