[Bf-blender-cvs] [86d8f10] soc-2014-bge: gameengine: removing addInitFromFrame hack

Ines Almeida noreply at git.blender.org
Thu Jul 24 20:34:18 CEST 2014


Commit: 86d8f1020045be7a4073841889c11b2b61b11c26
Author: Ines Almeida
Date:   Wed Jul 23 13:07:01 2014 +0100
Branches: soc-2014-bge
https://developer.blender.org/rB86d8f1020045be7a4073841889c11b2b61b11c26

gameengine: removing addInitFromFrame hack

===================================================================

M	source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
M	source/gameengine/Converter/BL_BlenderDataConversion.cpp
M	source/gameengine/Converter/KX_BlenderSceneConverter.cpp
M	source/gameengine/Ketsji/KX_ISceneConverter.h

===================================================================

diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
index 298b16a..76a74c2 100644
--- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
+++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
@@ -465,7 +465,6 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c
 			// create a scene converter, create and convert the startingscene
 			KX_ISceneConverter* sceneconverter = new KX_BlenderSceneConverter(blenderdata, ketsjiengine);
 			ketsjiengine->SetSceneConverter(sceneconverter);
-			sceneconverter->addInitFromFrame=false;
 			if (always_use_expand_framing)
 				sceneconverter->SetAlwaysUseExpandFraming(true);
 
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
index e2bfb0e..845ab8c 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
@@ -1746,8 +1746,7 @@ static KX_GameObject* getGameOb(STR_String busc,CListValue* sumolist)
  * note: all var names match args are passed from the caller */
 static void bl_ConvertBlenderObject_Single(
         KX_BlenderSceneConverter *converter,
-        Scene *blenderscene, Object *blenderobject,
-        vector<MT_Vector3> &inivel, vector<MT_Vector3> &iniang,
+       Object *blenderobject,
         vector<parentChildLink> &vec_parent_child,
         CListValue* logicbrick_conversionlist,
         CListValue* objectlist, CListValue* inactivelist, CListValue*	sumolist,
@@ -1756,10 +1755,6 @@ static void bl_ConvertBlenderObject_Single(
         bool isInActiveLayer
         )
 {
-	MT_Point3 posPrev;
-	MT_Matrix3x3 angor;
-	if (converter->addInitFromFrame) blenderscene->r.cfra=blenderscene->r.sfra;
-
 	MT_Point3 pos(
 		blenderobject->loc[0]+blenderobject->dloc[0],
 		blenderobject->loc[1]+blenderobject->dloc[1],
@@ -1773,35 +1768,6 @@ static void bl_ConvertBlenderObject_Single(
 
 	MT_Vector3 scale(blenderobject->size);
 
-	if (converter->addInitFromFrame) {//rcruiz
-		blenderscene->r.cfra=blenderscene->r.sfra-1;
-		//XXX update_for_newframe();
-		MT_Vector3 tmp=pos-MT_Point3(blenderobject->loc[0]+blenderobject->dloc[0],
-		                             blenderobject->loc[1]+blenderobject->dloc[1],
-		                             blenderobject->loc[2]+blenderobject->dloc[2]
-		                             );
-
-		float rotmatPrev[3][3];
-		BKE_object_rot_to_mat3(blenderobject, rotmatPrev, false);
-
-		float eulxyz[3], eulxyzPrev[3];
-		mat3_to_eul(eulxyz, rotmat);
-		mat3_to_eul(eulxyzPrev, rotmatPrev);
-
-		double fps = (double) blenderscene->r.frs_sec/
-		        (double) blenderscene->r.frs_sec_base;
-
-		tmp.scale(fps, fps, fps);
-		inivel.push_back(tmp);
-		tmp[0]=eulxyz[0]-eulxyzPrev[0];
-		tmp[1]=eulxyz[1]-eulxyzPrev[1];
-		tmp[2]=eulxyz[2]-eulxyzPrev[2];
-		tmp.scale(fps, fps, fps);
-		iniang.push_back(tmp);
-		blenderscene->r.cfra=blenderscene->r.sfra;
-		//XXX update_for_newframe();
-	}
-
 	gameobj->NodeSetLocalPosition(pos);
 	gameobj->NodeSetLocalOrientation(rotation);
 	gameobj->NodeSetLocalScale(scale);
@@ -1814,7 +1780,7 @@ static void bl_ConvertBlenderObject_Single(
 	gameobj->SetName(blenderobject->id.name + 2);
 
 	// update children/parent hierarchy
-	if ((blenderobject->parent != 0)&&(!converter->addInitFromFrame))
+	if (blenderobject->parent != 0)
 	{
 		// blender has an additional 'parentinverse' offset in each object
 		SG_Callbacks callback(NULL,NULL,NULL,KX_Scene::KX_ScenegraphUpdateFunc,KX_Scene::KX_ScenegraphRescheduleFunc);
@@ -1873,10 +1839,6 @@ static void bl_ConvertBlenderObject_Single(
 
 	logicbrick_conversionlist->Add(gameobj->AddRef());
 
-	if (converter->addInitFromFrame) {
-		posPrev=gameobj->NodeGetWorldPosition();
-		angor=gameobj->NodeGetWorldOrientation();
-	}
 	if (isInActiveLayer)
 	{
 		objectlist->Add(gameobj->AddRef());
@@ -1884,7 +1846,6 @@ static void bl_ConvertBlenderObject_Single(
 
 		gameobj->NodeUpdateGS(0);
 		gameobj->AddMeshUser();
-
 	}
 	else
 	{
@@ -1892,11 +1853,6 @@ static void bl_ConvertBlenderObject_Single(
 		//at the end of this function if it is not a root object
 		inactivelist->Add(gameobj->AddRef());
 	}
-
-	if (converter->addInitFromFrame) {
-		gameobj->NodeSetLocalPosition(posPrev);
-		gameobj->NodeSetLocalOrientation(angor);
-	}
 }
 
 
@@ -1915,8 +1871,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
 
 #define BL_CONVERTBLENDEROBJECT_SINGLE                                 \
 	bl_ConvertBlenderObject_Single(converter,                          \
-	                               blenderscene, blenderobject,        \
-	                               inivel, iniang,                     \
+	                               blenderobject,                      \
 	                               vec_parent_child,                   \
 	                               logicbrick_conversionlist,          \
 	                               objectlist, inactivelist, sumolist, \
@@ -1938,7 +1893,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
 	RAS_FrameSettings::RAS_FrameType frame_type;
 	int aspect_width;
 	int aspect_height;
-	vector<MT_Vector3> inivel,iniang;
 	set<Group*> grouplist;	// list of groups to be converted
 	set<Object*> allblobj;	// all objects converted
 	set<Object*> groupobj;	// objects from groups (never in active layer)
@@ -2025,23 +1979,15 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
 										rendertools, 
 										converter,
 										libloading);
-										
-		bool isInActiveLayer = (blenderobject->lay & activeLayerBitInfo) !=0;
-		bool addobj=true;
-		
-		if (converter->addInitFromFrame)
-			if (!isInActiveLayer)
-				addobj=false;
 
+		bool isInActiveLayer = (blenderobject->lay & activeLayerBitInfo) !=0;
 		if (gameobj)
 		{
-			if (addobj)
-			{	/* macro calls object conversion funcs */
-				BL_CONVERTBLENDEROBJECT_SINGLE;
+			/* macro calls object conversion funcs */
+			BL_CONVERTBLENDEROBJECT_SINGLE;
 
-				if (gameobj->IsDupliGroup()) {
-					grouplist.insert(blenderobject->dup_group);
-				}
+			if (gameobj->IsDupliGroup()) {
+				grouplist.insert(blenderobject->dup_group);
 			}
 
 			/* Note about memory leak issues:
@@ -2085,22 +2031,12 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
 														rendertools, 
 														converter,
 														libloading);
-										
-						// this code is copied from above except that
-						// object from groups are never in active layer
-						bool isInActiveLayer = false;
-						bool addobj=true;
-						
-						if (converter->addInitFromFrame)
-							if (!isInActiveLayer)
-								addobj=false;
 
+						bool isInActiveLayer = false;
 						if (gameobj)
 						{
-							if (addobj)
-							{	/* macro calls object conversion funcs */
-								BL_CONVERTBLENDEROBJECT_SINGLE;
-							}
+							/* macro calls object conversion funcs */
+							BL_CONVERTBLENDEROBJECT_SINGLE;
 
 							if (gameobj->IsDupliGroup())
 							{
@@ -2110,7 +2046,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
 								}
 							}
 
-
 							/* see comment above re: mem leaks */
 							gameobj->Release();
 						}
@@ -2332,18 +2267,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
 		int layerMask = (groupobj.find(blenderobject) == groupobj.end()) ? activeLayerBitInfo : 0;
 		BL_CreatePhysicsObjectNew(gameobj,blenderobject,meshobj,kxscene,layerMask,converter,processCompoundChildren);
 	}
-	
-	//set ini linearVel and int angularVel //rcruiz
-	if (converter->addInitFromFrame) {
-		for (i=0;i<sumolist->GetCount();i++)
-		{
-			KX_GameObject* gameobj = (KX_GameObject*) sumolist->GetValue(i);
-			if (gameobj->IsDynamic()) {
-				gameobj->setLinearVelocity(inivel[i],false);
-				gameobj->setAngularVelocity(iniang[i],false);
-			}
-		}
-	}
 
 	// create physics joints
 	for (i=0;i<sumolist->GetCount();i++)
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index a20ebb3..bbf800e 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -597,6 +597,8 @@ void KX_BlenderSceneConverter::RegisterWorldInfo(
 
 void	KX_BlenderSceneConverter::ResetPhysicsObjectsAnimationIpo(bool clearIpo)
 {
+	//TODO this entire function is deprecated, written for 2.4x
+	//the functionality should be rewritten, currently it does nothing
 
 	KX_SceneList* scenes = m_ketsjiEngine->CurrentScenes();
 	int numScenes = scenes->size();
@@ -612,7 +614,7 @@ void	KX_BlenderSceneConverter::ResetPhysicsObjectsAnimationIpo(bool clearIpo)
 		{
 			KX_GameObject* gameObj = (KX_GameObject*)parentList->GetValue(g);
 			if (gameObj->IsRecordAnimation()) {
-				
+
 				Object* blenderObject = gameObj->GetBlenderObject();
 				if (blenderObject)
 				{
@@ -623,21 +625,21 @@ void	KX_BlenderSceneConverter::ResetPhysicsObjectsAnimationIpo(bool clearIpo)
 					{ 	//clear the curve data
 						if (clearIpo) {//rcruiz
 							IpoCurve *icu1;
-														
+
 							int numCurves = 0;
 							for ( icu1 = (IpoCurve*)ipo->curve.first; icu1;  ) {
-							
+
 								IpoCurve* tmpicu = icu1;
-								
+
 								/*int i;
 								BezTriple *bezt;
 								for ( bezt = tmpicu->bezt, i = 0;	i < tmpicu->totvert; i++, bezt++) {
 									printf("(%f,%f,%f),(%f,%f,%f),(%f,%f,%f)\n",bezt->vec[0][0],bezt->vec[0][1],bezt->vec[0][2],bezt->vec[1][0],bezt->vec[1][1],bezt->vec[1][2],bezt->vec[2][0],bezt->vec[2][1],bezt->vec[2][2]);
 								}*/
-								
+
 								icu1 = icu1->next;
 								numCurves++;
-			
+
 								BLI_remlink( &( blenderObject->ipo->curve ), tmpicu );
 								if ( tmpicu->bezt )
 									MEM_freeN( tmpicu->bezt );
@@ -655,8 +657,8 @@ void	KX_BlenderSceneConverter::ResetPhysicsObjectsAnimationIpo(bool clearIpo)
 			}
 
 		}
-		
-	
+
+
 	}
 
 
@@ -665,45 +667,7 @@ void	KX_BlenderSceneConverter::ResetPhysicsObjectsAnimationIpo(bool clearIpo)
 
 void	KX_BlenderSceneConverter::resetNoneDynamicObjectToIpo()
 {
-	if (addInitFromFrame) {
-		KX_SceneList* scenes = m_ketsjiEngine->CurrentScenes();
-		int numScenes = scenes->size();
-		if (numScenes>=0) {
-			KX_Scene* scene 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list