[Bf-blender-cvs] [536578a] fracture_modifier: fix attempt for some dynamic fracture rotation glitches

Martin Felke noreply at git.blender.org
Sun Mar 27 23:20:36 CEST 2016


Commit: 536578a189886cc7dd27e44bd25e9ce31f310213
Author: Martin Felke
Date:   Sun Mar 27 23:19:32 2016 +0200
Branches: fracture_modifier
https://developer.blender.org/rB536578a189886cc7dd27e44bd25e9ce31f310213

fix attempt for some dynamic fracture rotation glitches

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

M	source/blender/blenkernel/BKE_blender.h
M	source/blender/blenkernel/intern/fracture.c
M	source/blender/blenkernel/intern/rigidbody.c
M	source/blender/modifiers/intern/MOD_fracture.c

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

diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index 23b6e2b..4f8184b 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -51,7 +51,7 @@ extern "C" {
 /* can be left blank, otherwise a,b,c... etc with no quotes */
 #define BLENDER_VERSION_CHAR   
 /* alpha/beta/rc/release, docs use this */
-#define BLENDER_VERSION_CYCLE   release
+#define BLENDER_VERSION_CYCLE   alpha
 
 extern char versionstr[]; /* from blender.c */
 
diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c
index 39bd38b..b5550b7 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -1964,6 +1964,11 @@ void BKE_match_vertex_coords(MeshIsland* mi, MeshIsland *par, Object *ob, int fr
 		mul_qt_qtqt(qrot, rot, par->rot);
 		mul_qt_qtqt(qrot, quat, qrot);
 	}
+	else
+	{
+		invert_qt_qt(qrot, par->rot);
+		mul_qt_qtqt(qrot, rot, qrot);
+	}
 
 	if (is_parent)
 	{
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index 9e95113..ee1d92a 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -1934,12 +1934,13 @@ static int filterCallback(void* world, void* island1, void* island2, void *blend
 	int ob_index1 = -1, ob_index2 = -1;
 	bool validOb = true;
 
-	FractureModifierData *fmd1 = (FractureModifierData*)modifiers_findByType((Object*)blenderOb1, eModifierType_Fracture);
-	FractureModifierData *fmd2 = (FractureModifierData*)modifiers_findByType((Object*)blenderOb2, eModifierType_Fracture);
-
 	mi1 = (MeshIsland*)island1;
 	mi2 = (MeshIsland*)island2;
 
+#if 0
+	FractureModifierData *fmd1 = (FractureModifierData*)modifiers_findByType((Object*)blenderOb1, eModifierType_Fracture);
+	FractureModifierData *fmd2 = (FractureModifierData*)modifiers_findByType((Object*)blenderOb2, eModifierType_Fracture);
+
 	if ((fmd1 && fmd1->fracture_mode == MOD_FRACTURE_DYNAMIC) ||
 	   (fmd2 && fmd2->fracture_mode == MOD_FRACTURE_DYNAMIC))
 	{
@@ -1949,6 +1950,7 @@ static int filterCallback(void* world, void* island1, void* island2, void *blend
 		ob2 = blenderOb2;
 		return check_colgroup_ghost(ob1, ob2);
 	}
+#endif
 
 	if (rbw == NULL)
 	{
diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c
index fac1d4f..8111474 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -2460,10 +2460,10 @@ static void create_constraints(FractureModifierData *rmd)
 		}
 		else if (rmd->constraint_target == MOD_FRACTURE_VERTEX) {
 			MVert mv;
-			MeshIsland *mi = NULL;
+			MeshIsland *mii = NULL;
 			rmd->visible_mesh_cached->getVert(rmd->visible_mesh_cached, i, &mv);
-			mi = BLI_ghash_lookup(rmd->vertex_island_map, SET_INT_IN_POINTER(i));
-			search_tree_based(rmd, mi, mesh_islands, &coord_tree, mv.co, max_mass);
+			mii = BLI_ghash_lookup(rmd->vertex_island_map, SET_INT_IN_POINTER(i));
+			search_tree_based(rmd, mii, mesh_islands, &coord_tree, mv.co, max_mass);
 		}
 	}




More information about the Bf-blender-cvs mailing list