[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32705] trunk/blender/source: bugfix [ #22277] Absolute Shapekeys crash (in BGE)

Campbell Barton ideasman42 at gmail.com
Mon Oct 25 19:09:36 CEST 2010


Revision: 32705
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32705
Author:   campbellbarton
Date:     2010-10-25 19:08:40 +0200 (Mon, 25 Oct 2010)

Log Message:
-----------
bugfix [#22277] Absolute Shapekeys crash (in BGE)
running a shape actuator on a softbody would crash because it assumed the deformer was a BL_MeshDeformer.
Added TODO note, since it would be nice if softbody would work with shape keys too.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
    trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.h
    trunk/blender/source/gameengine/Physics/Bullet/CMakeLists.txt

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-10-25 15:36:48 UTC (rev 32704)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-10-25 17:08:40 UTC (rev 32705)
@@ -66,7 +66,6 @@
 
 /* view3d_ops.c */
 void view3d_operatortypes(void);
-void view3d_keymap(struct wmKeyConfig *keyconf);
 
 /* view3d_edit.c */
 void VIEW3D_OT_zoom(struct wmOperatorType *ot);
@@ -94,6 +93,7 @@
 void view3d_persp_mat4(struct RegionView3D *rv3d, float mat[][4]);
 
 /* view3d_fly.c */
+void view3d_keymap(struct wmKeyConfig *keyconf);
 void VIEW3D_OT_fly(struct wmOperatorType *ot);
 
 /* drawanim.c */

Modified: trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.h	2010-10-25 15:36:48 UTC (rev 32704)
+++ trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.h	2010-10-25 17:08:40 UTC (rev 32705)
@@ -37,6 +37,7 @@
 #include "DNA_mesh_types.h"
 #include "KX_GameObject.h"
 #include "BL_MeshDeformer.h"
+#include "KX_SoftBodyDeformer.h"
 #include <vector>
 
 class BL_ShapeActionActuator;
@@ -79,7 +80,20 @@
 	bool GetShape(vector<float> &shape);
 	Key* GetKey()
 	{
-		return (m_pDeformer) ? ((BL_MeshDeformer*)m_pDeformer)->GetMesh()->key : NULL;
+		if(m_pDeformer) {
+			BL_MeshDeformer *deformer= dynamic_cast<BL_MeshDeformer *>(m_pDeformer); // incase its not a MeshDeformer
+			if(deformer) {
+				return deformer->GetMesh()->key;
+			}
+
+#if 0		// TODO. shape keys for softbody, currently they dont store a mesh.
+			KX_SoftBodyDeformer *deformer_soft= dynamic_cast<KX_SoftBodyDeformer *>(m_pDeformer);	
+			if(deformer) {
+				return deformer->GetMesh()->key;
+			}
+#endif
+		}
+		return NULL;
 	}
 	
 	virtual void	SetDeformer(class RAS_Deformer* deformer);

Modified: trunk/blender/source/gameengine/Physics/Bullet/CMakeLists.txt
===================================================================
--- trunk/blender/source/gameengine/Physics/Bullet/CMakeLists.txt	2010-10-25 15:36:48 UTC (rev 32704)
+++ trunk/blender/source/gameengine/Physics/Bullet/CMakeLists.txt	2010-10-25 17:08:40 UTC (rev 32705)
@@ -24,6 +24,9 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
+# since this includes bullet we get errors from the headers too
+REMOVE_STRICT_FLAGS()
+
 SET(INC
 	.
 	../common





More information about the Bf-blender-cvs mailing list