[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54777] trunk/blender/source/gameengine: BGE: Finally moving material IPOs to the 2.60 BGE animation system ( BL_Action).

Mitchell Stokes mogurijin at gmail.com
Sat Feb 23 03:47:23 CET 2013


Revision: 54777
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54777
Author:   moguri
Date:     2013-02-23 02:47:22 +0000 (Sat, 23 Feb 2013)
Log Message:
-----------
BGE: Finally moving material IPOs to the 2.60 BGE animation system (BL_Action). It was kind of a fluke that they worked before.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    trunk/blender/source/gameengine/Converter/CMakeLists.txt
    trunk/blender/source/gameengine/Ketsji/BL_Action.cpp
    trunk/blender/source/gameengine/Ketsji/CMakeLists.txt

Added Paths:
-----------
    trunk/blender/source/gameengine/Ketsji/KX_IpoConvert.cpp
    trunk/blender/source/gameengine/Ketsji/KX_IpoConvert.h

Removed Paths:
-------------
    trunk/blender/source/gameengine/Converter/KX_IpoConvert.cpp
    trunk/blender/source/gameengine/Converter/KX_IpoConvert.h

Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-02-23 02:45:12 UTC (rev 54776)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-02-23 02:47:22 UTC (rev 54777)
@@ -2233,8 +2233,6 @@
 	gameobj->NodeSetLocalScale(scale);
 	gameobj->NodeUpdateGS(0);
 
-	BL_ConvertMaterialIpos(blenderobject, gameobj, converter);
-
 	sumolist->Add(gameobj->AddRef());
 
 	BL_ConvertProperties(blenderobject,gameobj,timemgr,kxscene,isInActiveLayer);

Modified: trunk/blender/source/gameengine/Converter/CMakeLists.txt
===================================================================
--- trunk/blender/source/gameengine/Converter/CMakeLists.txt	2013-02-23 02:45:12 UTC (rev 54776)
+++ trunk/blender/source/gameengine/Converter/CMakeLists.txt	2013-02-23 02:47:22 UTC (rev 54777)
@@ -82,7 +82,6 @@
 	KX_ConvertControllers.cpp
 	KX_ConvertProperties.cpp
 	KX_ConvertSensors.cpp
-	KX_IpoConvert.cpp
 	KX_LibLoadStatus.cpp
 	KX_SoftBodyDeformer.cpp
 
@@ -105,7 +104,6 @@
 	KX_ConvertControllers.h
 	KX_ConvertProperties.h
 	KX_ConvertSensors.h
-	KX_IpoConvert.h
 	KX_LibLoadStatus.h
 	KX_SoftBodyDeformer.h
 )

Deleted: trunk/blender/source/gameengine/Converter/KX_IpoConvert.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_IpoConvert.cpp	2013-02-23 02:45:12 UTC (rev 54776)
+++ trunk/blender/source/gameengine/Converter/KX_IpoConvert.cpp	2013-02-23 02:47:22 UTC (rev 54777)
@@ -1,496 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file gameengine/Converter/KX_IpoConvert.cpp
- *  \ingroup bgeconv
- */
-
-#ifdef _MSC_VER
-   /* don't show stl-warnings */
-#  pragma warning (disable:4786)
-#endif
-
-#include "BKE_material.h" /* give_current_material */
-
-#include "KX_GameObject.h"
-#include "KX_IpoConvert.h"
-#include "KX_IInterpolator.h"
-#include "KX_ScalarInterpolator.h"
-
-#include "KX_BlenderScalarInterpolator.h"
-#include "KX_BlenderSceneConverter.h"
-
-
-/* This little block needed for linking to Blender... */
-#ifdef WIN32
-#include "BLI_winstuff.h"
-#endif
-
-#include "DNA_object_types.h"
-#include "DNA_action_types.h"
-#include "DNA_anim_types.h"
-#include "DNA_ipo_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_world_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_material_types.h"
-/* end of blender include block */
-
-#include "KX_IPO_SGController.h"
-#include "KX_LightIpoSGController.h"
-#include "KX_CameraIpoSGController.h"
-#include "KX_WorldIpoController.h"
-#include "KX_ObColorIpoSGController.h"
-#include "KX_MaterialIpoController.h"
-
-#include "SG_Node.h"
-
-#include "STR_HashedString.h"
-
-static BL_InterpolatorList *GetAdtList(struct bAction *for_act, KX_BlenderSceneConverter *converter)
-{
-	BL_InterpolatorList *adtList= converter->FindInterpolatorList(for_act);
-
-	if (!adtList) {
-		adtList = new BL_InterpolatorList(for_act);
-		converter->RegisterInterpolatorList(adtList, for_act);
-	}
-			
-	return adtList;
-}
-
-SG_Controller *BL_CreateIPO(struct bAction *action, KX_GameObject* gameobj, KX_BlenderSceneConverter *converter)
-{
-	KX_IpoSGController* ipocontr = new KX_IpoSGController();
-	ipocontr->SetGameObject(gameobj);
-
-	Object* blenderobject = gameobj->GetBlenderObject();
-
-	ipocontr->GetIPOTransform().SetPosition(MT_Point3(blenderobject->loc));
-	ipocontr->GetIPOTransform().SetEulerAngles(MT_Vector3(blenderobject->rot));
-	ipocontr->GetIPOTransform().SetScaling(MT_Vector3(blenderobject->size));
-
-	const char *rotmode, *drotmode;
-
-	switch (blenderobject->rotmode) {
-	case ROT_MODE_AXISANGLE:
-		rotmode = "rotation_axis_angle";
-		drotmode = "delta_rotation_axis_angle";
-		break;
-	case ROT_MODE_QUAT: /* XXX, this isn't working, currently only eulers are supported [#28853] */
-		rotmode = "rotation_quaternion";
-		drotmode = "delta_rotation_quaternion";
-		break;
-	default:
-		rotmode = "rotation_euler";
-		drotmode = "delta_rotation_euler";
-		break;
-	}
-
-	BL_InterpolatorList *adtList= GetAdtList(action, converter);
-		
-	// For each active channel in the adtList add an
-	// interpolator to the game object.
-		
-	KX_IInterpolator *interpolator;
-	KX_IScalarInterpolator *interp;
-		
-	for (int i=0; i<3; i++) {
-		if ((interp = adtList->GetScalarInterpolator("location", i))) {
-			interpolator= new KX_ScalarInterpolator(&(ipocontr->GetIPOTransform().GetPosition()[i]), interp);
-			ipocontr->AddInterpolator(interpolator);
-			ipocontr->SetIPOChannelActive(OB_LOC_X+i, true);
-		}
-	}
-	for (int i=0; i<3; i++) {
-		if ((interp = adtList->GetScalarInterpolator("delta_location", i))) {
-			interpolator= new KX_ScalarInterpolator(&(ipocontr->GetIPOTransform().GetDeltaPosition()[i]), interp);
-			ipocontr->AddInterpolator(interpolator);
-			ipocontr->SetIPOChannelActive(OB_DLOC_X+i, true);
-		}
-	}
-	for (int i=0; i<3; i++) {
-		if ((interp = adtList->GetScalarInterpolator(rotmode, i))) {
-			interpolator= new KX_ScalarInterpolator(&(ipocontr->GetIPOTransform().GetEulerAngles()[i]), interp);
-			ipocontr->AddInterpolator(interpolator);
-			ipocontr->SetIPOChannelActive(OB_ROT_X+i, true);
-		}
-	}
-	for (int i=0; i<3; i++) {
-		if ((interp = adtList->GetScalarInterpolator(drotmode, i))) {
-			interpolator= new KX_ScalarInterpolator(&(ipocontr->GetIPOTransform().GetDeltaEulerAngles()[i]), interp);
-			ipocontr->AddInterpolator(interpolator);
-			ipocontr->SetIPOChannelActive(OB_DROT_X+i, true);
-		}
-	}
-	for (int i=0; i<3; i++) {
-		if ((interp = adtList->GetScalarInterpolator("scale", i))) {
-			interpolator= new KX_ScalarInterpolator(&(ipocontr->GetIPOTransform().GetScaling()[i]), interp);
-			ipocontr->AddInterpolator(interpolator);
-			ipocontr->SetIPOChannelActive(OB_SIZE_X+i, true);
-		}
-	}
-	for (int i=0; i<3; i++) {
-		if ((interp = adtList->GetScalarInterpolator("delta_scale", i))) {
-			interpolator= new KX_ScalarInterpolator(&(ipocontr->GetIPOTransform().GetDeltaScaling()[i]), interp);
-			ipocontr->AddInterpolator(interpolator);
-			ipocontr->SetIPOChannelActive(OB_DSIZE_X+i, true);
-		}
-	}
-		
-
-	return ipocontr;
-}
-
-
-SG_Controller *BL_CreateObColorIPO(struct bAction *action, KX_GameObject* gameobj, KX_BlenderSceneConverter *converter)
-{
-	KX_ObColorIpoSGController* ipocontr_obcol=NULL;
-	KX_IInterpolator *interpolator;
-	KX_IScalarInterpolator *interp;
-	BL_InterpolatorList *adtList= GetAdtList(action, converter);
-
-	for (int i=0; i<4; i++) {
-		if ((interp = adtList->GetScalarInterpolator("color", i))) {
-			if (!ipocontr_obcol) {
-				ipocontr_obcol = new KX_ObColorIpoSGController();
-			}
-			interpolator= new KX_ScalarInterpolator(&ipocontr_obcol->m_rgba[i], interp);
-			ipocontr_obcol->AddInterpolator(interpolator);
-		}
-	}
-
-	return ipocontr_obcol;
-}
-
-void BL_ConvertIpos(struct Object* blenderobject,KX_GameObject* gameobj,KX_BlenderSceneConverter *converter)
-{
-	if (blenderobject->adt) {
-		SG_Controller *ipocontr = BL_CreateIPO(blenderobject->adt->action, gameobj, converter);
-		gameobj->GetSGNode()->AddSGController(ipocontr);
-		ipocontr->SetObject(gameobj->GetSGNode());
-
-		SG_Controller *ipocontr_obcol = BL_CreateObColorIPO(blenderobject->adt->action, gameobj, converter);
-		if (ipocontr_obcol) {
-			gameobj->GetSGNode()->AddSGController(ipocontr_obcol);
-			ipocontr_obcol->SetObject(gameobj->GetSGNode());
-		}
-	}
-}
-
-SG_Controller *BL_CreateLampIPO(struct bAction *action, KX_GameObject*  lightobj, KX_BlenderSceneConverter *converter)
-{
-	KX_LightIpoSGController* ipocontr = new KX_LightIpoSGController();
-
-	Lamp *blenderlamp = (Lamp*)lightobj->GetBlenderObject()->data;
-
-	ipocontr->m_energy = blenderlamp->energy;
-	ipocontr->m_col_rgb[0] = blenderlamp->r;
-	ipocontr->m_col_rgb[1] = blenderlamp->g;
-	ipocontr->m_col_rgb[2] = blenderlamp->b;
-	ipocontr->m_dist = blenderlamp->dist;
-
-	BL_InterpolatorList *adtList= GetAdtList(action, converter);
-
-	// For each active channel in the adtList add an
-	// interpolator to the game object.
-		
-	KX_IInterpolator *interpolator;
-	KX_IScalarInterpolator *interp;
-		
-	if ((interp= adtList->GetScalarInterpolator("energy", 0))) {
-		interpolator= new KX_ScalarInterpolator(&ipocontr->m_energy, interp);
-		ipocontr->AddInterpolator(interpolator);
-		ipocontr->SetModifyEnergy(true);
-	}
-
-	if ((interp = adtList->GetScalarInterpolator("distance", 0))) {
-		interpolator= new KX_ScalarInterpolator(&ipocontr->m_dist, interp);
-		ipocontr->AddInterpolator(interpolator);
-		ipocontr->SetModifyDist(true);
-	}
-		
-	for (int i=0; i<3; i++) {
-		if ((interp = adtList->GetScalarInterpolator("color", i))) {
-			interpolator= new KX_ScalarInterpolator(&ipocontr->m_col_rgb[i], interp);
-			ipocontr->AddInterpolator(interpolator);
-			ipocontr->SetModifyColor(true);
-		}
-	}
-
-	return ipocontr;
-}
-
-void BL_ConvertLampIpos(struct Lamp* blenderlamp, KX_GameObject *lightobj,KX_BlenderSceneConverter *converter)
-{
-
-	if (blenderlamp->adt) {
-
-		SG_Controller* ipocontr = BL_CreateLampIPO(blenderlamp->adt->action, lightobj, converter);
-		lightobj->GetSGNode()->AddSGController(ipocontr);
-		ipocontr->SetObject(lightobj->GetSGNode());
-		
-		
-	}
-}
-
-SG_Controller *BL_CreateCameraIPO(struct bAction *action, KX_GameObject*  cameraobj, KX_BlenderSceneConverter *converter)
-{
-	KX_CameraIpoSGController* ipocontr = new KX_CameraIpoSGController();
-
-	Camera *blendercamera = (Camera*)cameraobj->GetBlenderObject()->data;
-

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list