[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36945] branches/soc-2011-pepper/source/ gameengine: Moving BL_Action and BL_ActionManager to Ketsji to avoid linking issues with gcc

Mitchell Stokes mogurijin at gmail.com
Fri May 27 10:45:49 CEST 2011


Revision: 36945
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36945
Author:   moguri
Date:     2011-05-27 08:45:48 +0000 (Fri, 27 May 2011)
Log Message:
-----------
Moving BL_Action and BL_ActionManager to Ketsji to avoid linking issues with gcc

Modified Paths:
--------------
    branches/soc-2011-pepper/source/gameengine/Converter/CMakeLists.txt
    branches/soc-2011-pepper/source/gameengine/Ketsji/CMakeLists.txt
    branches/soc-2011-pepper/source/gameengine/Ketsji/SConscript

Added Paths:
-----------
    branches/soc-2011-pepper/source/gameengine/Ketsji/BL_Action.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/BL_Action.h
    branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.h

Removed Paths:
-------------
    branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.cpp
    branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.h
    branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.cpp
    branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.h

Deleted: branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.cpp
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.cpp	2011-05-27 07:47:42 UTC (rev 36944)
+++ branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.cpp	2011-05-27 08:45:48 UTC (rev 36945)
@@ -1,198 +0,0 @@
-/**
- * $Id$
- *
- * ***** 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 *****
- */
-
-#include "BL_Action.h"
-#include "BL_ArmatureObject.h"
-#include "KX_GameObject.h"
-
-// These three are for getting the action from the logic manager
-#include "KX_Scene.h"
-#include "KX_PythonInit.h"
-#include "SCA_LogicManager.h"
-
-extern "C" {
-#include "BKE_animsys.h"
-#include "BKE_action.h"
-#include "RNA_access.h"
-#include "RNA_define.h"
-}
-
-BL_Action::BL_Action(class KX_GameObject* gameobj,
-					const char* name,
-					float start,
-					float end,
-					float blendin,
-					short play_mode,
-					short blend_mode)
-:
-	m_obj(gameobj),
-	m_startframe(start),
-	m_endframe(end),
-	m_blendin(blendin),
-	m_playmode(play_mode),
-	m_endtime(0.f),
-	m_localtime(start),
-	m_blendframe(0.f),
-	m_blendstart(0.f),
-	m_pose(NULL),
-	m_blendpose(NULL),
-	m_done(false)
-{
-	m_starttime = KX_GetActiveEngine()->GetFrameTime();
-	m_action = (bAction*)KX_GetActiveScene()->GetLogicManager()->GetActionByName(name);
-
-	if (!m_action) printf("Failed to load action: %s\n", name);
-}
-
-BL_Action::~BL_Action()
-{
-	if (m_pose)
-		game_free_pose(m_pose);
-	if (m_blendpose)
-		game_free_pose(m_blendpose);
-}
-
-void BL_Action::SetLocalTime(float curtime)
-{
-	float dt = (curtime-m_starttime)*KX_KetsjiEngine::GetAnimFrameRate();
-
-	if (m_endframe < m_startframe)
-		dt = -dt;
-
-	m_localtime = m_startframe + dt;
-}
-
-void BL_Action::Update(float curtime)
-{
-	curtime -= KX_KetsjiEngine::GetSuspendedDelta();
-
-	SetLocalTime(curtime);
-
-	// Handle wrap around
-	if (m_localtime < m_startframe || m_localtime > m_endframe)
-	{
-		switch(m_playmode)
-		{
-		case ACT_MODE_PLAY:
-			// Clamp
-			m_localtime = m_endframe;
-			m_done = true;
-			break;
-		case ACT_MODE_LOOP:
-			// Put the time back to the beginning
-			m_localtime = m_startframe;
-			m_starttime = curtime;
-			break;
-		case ACT_MODE_PING_PONG:
-			// Swap the start and end frames
-			float temp = m_startframe;
-			m_startframe = m_endframe;
-			m_endframe = temp;
-
-			m_starttime = curtime;
-
-			break;
-		}
-	}
-
-	if (m_obj->GetGameObjectType() == SCA_IObject::OBJ_ARMATURE)
-	{
-		bPose* prev_pose = NULL;
-		BL_ArmatureObject *obj = (BL_ArmatureObject*)m_obj;
-		obj->GetPose(&m_pose);
-
-		// Save the old pose if we need to do some layer blending
-		if (m_blendmode != ACT_BLEND_NONE)
-			obj->GetMRDPose(&prev_pose);
-
-		// Extract the pose from the action
-		{
-			struct PointerRNA id_ptr;
-			Object *arm = obj->GetArmatureObject();
-			bPose *temp = arm->pose;
-
-			arm->pose = m_pose;
-			RNA_id_pointer_create((ID*)arm, &id_ptr);
-			animsys_evaluate_action(&id_ptr, m_action, NULL, m_localtime);
-
-			arm->pose = temp;
-		}
-
-		// Handle blending between layers
-		switch(m_blendmode)
-		{
-		case ACT_BLEND_MIX:
-			game_blend_poses(m_pose, prev_pose, 0.5f);
-			break;
-		case ACT_BLEND_NONE:
-		default:
-			break;
-		}
-
-		// Handle blending between actions
-		if (m_blendin && m_blendframe<m_blendin)
-		{
-			if (!m_blendpose)
-			{
-				obj->GetMRDPose(&m_blendpose);
-				m_blendstart = curtime;
-			}
-
-			// Calculate weight
-			float weight = 1.f - (m_blendframe/m_blendin);
-			game_blend_poses(m_pose, m_blendpose, weight);
-
-			// Bump the blend frame
-			m_blendframe = (curtime - m_blendstart)*KX_KetsjiEngine::GetAnimFrameRate();
-
-			// Clamp
-			if (m_blendframe>m_blendin)
-				m_blendframe = m_blendin;
-		}
-		else
-		{
-			if (m_blendpose)
-			{
-				game_free_pose(m_blendpose);
-				m_blendpose = NULL;
-			}
-		}
-
-		obj->SetPose(m_pose);
-
-		obj->SetActiveAction(NULL, 0, curtime);
-
-		if (prev_pose)
-			game_free_pose(prev_pose);
-	}
-	else
-	{
-		printf("Only armature actions are currently supported\n");
-	}
-}

Deleted: branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.h
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.h	2011-05-27 07:47:42 UTC (rev 36944)
+++ branches/soc-2011-pepper/source/gameengine/Converter/BL_Action.h	2011-05-27 08:45:48 UTC (rev 36945)
@@ -1,98 +0,0 @@
-/**
- * $Id$
- *
- * ***** 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 *****
- */
-#ifndef __BL_ACTION
-#define __BL_ACTION
-
-#ifdef WITH_CXX_GUARDEDALLOC
-#include "MEM_guardedalloc.h"
-#endif
-
-
-class BL_Action
-{
-private:
-	struct bAction* m_action;
-	struct bPose* m_pose;
-	struct bPose* m_blendpose;
-	struct PointerRNA *m_ptrrna;
-	class KX_GameObject* m_obj;
-
-	float m_startframe;
-	float m_endframe;
-	float m_starttime;
-	float m_endtime;
-	float m_localtime;
-
-	float m_blendin;
-	float m_blendframe;
-	float m_blendstart;
-
-	short m_playmode;
-	short m_blendmode;
-
-	bool m_done;
-
-	void SetLocalTime(float curtime);
-public:
-	BL_Action(class KX_GameObject* gameobj,
-			const char* name,
-			float start,
-			float end,
-			float blendin,
-			short play_mode,
-			short blend_mode);
-	~BL_Action();
-
-	bool IsDone() {return m_done;}
-	void Update(float curtime);
-
-	enum 
-	{
-		ACT_MODE_PLAY = 0,
-		ACT_MODE_LOOP,
-		ACT_MODE_PING_PONG,
-		ACT_MODE_MAX,
-	};
-
-	enum
-	{
-		ACT_BLEND_NONE = 0,
-		ACT_BLEND_MIX,
-		ACT_BLEND_MAX,
-	};
-
-#ifdef WITH_CXX_GUARDEDALLOC
-public:
-	void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:BL_Action"); }
-	void operator delete( void *mem ) { MEM_freeN(mem); }
-#endif
-};
-
-#endif //BL_ACTION
-

Deleted: branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.cpp
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.cpp	2011-05-27 07:47:42 UTC (rev 36944)
+++ branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.cpp	2011-05-27 08:45:48 UTC (rev 36945)
@@ -1,80 +0,0 @@
-/**
- * $Id$
- *
- * ***** 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 *****
- */
-
-#include "BL_ActionManager.h"
-
-BL_ActionManager::BL_ActionManager()
-{
-	for (int i=0; i<MAX_ACTION_LAYERS; ++i)
-		m_layers[i] = 0;
-}
-
-BL_ActionManager::~BL_ActionManager()
-{
-	for (int i=0; i<MAX_ACTION_LAYERS; ++i)
-		if (m_layers[i])
-			StopAction(i);
-}
-
-void BL_ActionManager::PlayAction(class KX_GameObject* gameobj,
-								const char* name,
-								float start,
-								float end,
-								short layer,
-								float blendin,
-								short play_mode,
-								short blend_mode)
-{
-	// Remove a currently running action on this layer if there is one
-	if (m_layers[layer])
-		StopAction(layer);
-
-	// Create a new action
-	m_layers[layer] = new BL_Action(gameobj, name, start, end, blendin, play_mode, blend_mode);
-}
-
-void BL_ActionManager::StopAction(short layer)
-{
-	delete m_layers[layer];
-	m_layers[layer] = 0;
-}
-
-void BL_ActionManager::Update(float curtime)
-{
-	for (int i=0; i<MAX_ACTION_LAYERS; ++i)
-	{
-		if (m_layers[i])
-		{
-			if (m_layers[i]->IsDone())
-				StopAction(i);
-			else
-				m_layers[i]->Update(curtime);
-		}
-	}
-}

Deleted: branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.h
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.h	2011-05-27 07:47:42 UTC (rev 36944)
+++ branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionManager.h	2011-05-27 08:45:48 UTC (rev 36945)
@@ -1,64 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list