[Bf-blender-cvs] [e29680e] fracture_modifier: forgot to take some rigidbody settings into account during object conversion

Martin Felke noreply at git.blender.org
Sun Jan 24 19:11:15 CET 2016


Commit: e29680e0e2a3b29990373d7d08adfb8a620fe25f
Author: Martin Felke
Date:   Sun Jan 24 19:11:03 2016 +0100
Branches: fracture_modifier
https://developer.blender.org/rBe29680e0e2a3b29990373d7d08adfb8a620fe25f

forgot to take some rigidbody settings into account during object conversion

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

M	source/blender/blenkernel/intern/rigidbody.c
M	source/blender/editors/object/object_modifier.c

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

diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index 5eaabff..154547e 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -2354,6 +2354,13 @@ RigidBodyOb *BKE_rigidbody_create_object(Scene *scene, Object *ob, short type, M
 
 	if (mi != NULL && mi->rigidbody != NULL)
 	{
+		rbo->flag = mi->rigidbody->flag;
+
+		rbo->physics_object = NULL;
+		rbo->physics_shape = NULL;
+
+		rbo->flag |= RBO_FLAG_NEEDS_VALIDATE;
+
 		rbo->type = mi->rigidbody->type;
 		rbo->mass = mi->rigidbody->mass;
 
@@ -3433,7 +3440,7 @@ static bool do_update_modifier(Scene* scene, Object* ob, RigidBodyWorld *rbw, bo
 				handle_regular_breaking(fmd, ob, rbw, rbsc, max_con_mass, rebuild);
 			}
 
-			if (fmd->fracture_mode == MOD_FRACTURE_EXTERNAL)
+			if (fmd->fracture_mode == MOD_FRACTURE_EXTERNAL && (rbsc->flag & RBC_FLAG_USE_BREAKING))
 			{
 				handle_plastic_breaking(rbsc, rbw, laststeps, lastscale);
 			}
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 098bd42..0e38ed5 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -2882,6 +2882,10 @@ static Object* do_convert_constraints(FractureModifierData *fmd, RigidBodyShardC
 	}
 	else
 	{
+		if ((fmd->use_mass_dependent_thresholds)) {
+			BKE_rigidbody_calc_threshold(max_con_mass, fmd, con);
+		}
+
 		/*use same settings as in modifier
 		 *XXX Maybe use the CENTER between objects ? Might be correct for Non fixed constraints*/
 		/* location for fixed constraints doesnt matter, so keep old setting */




More information about the Bf-blender-cvs mailing list