[Bf-blender-cvs] [0decb165630] fracture_modifier: do not execute refresh operator in running sim any more

Martin Felke noreply at git.blender.org
Tue Mar 28 21:39:08 CEST 2017


Commit: 0decb165630d0e5f636c7e49111cf3e5850f882d
Author: Martin Felke
Date:   Tue Mar 28 21:38:59 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rB0decb165630d0e5f636c7e49111cf3e5850f882d

do not execute refresh operator in running sim any more

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

M	source/blender/editors/object/object_modifier.c

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

diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 25d38c27c07..2c57ce8cfa9 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -2428,7 +2428,7 @@ static int fracture_refresh_exec(bContext *C, wmOperator *op)
 {
 	Object *obact = ED_object_active_context(C);
 	Scene *scene = CTX_data_scene(C);
-	//float cfra = BKE_scene_frame_get(scene);
+	float cfra = BKE_scene_frame_get(scene);
 	double start = 1.0;
 	FractureModifierData *rmd;
 //	FractureJob *fj;
@@ -2439,6 +2439,16 @@ static int fracture_refresh_exec(bContext *C, wmOperator *op)
 	if (!rmd)
 		return OPERATOR_CANCELLED;
 
+	if (scene->rigidbody_world && scene->rigidbody_world->pointcache)
+	{
+		RigidBodyWorld *rbw = scene->rigidbody_world;
+		if (BKE_rigidbody_check_sim_running(rbw, cfra) &&
+		   (rbw->ltime > rbw->pointcache->startframe || rbw->ltime == rbw->pointcache->endframe))
+		{
+			return OPERATOR_CANCELLED;
+		}
+	}
+
 	rmd->reset_shards = RNA_boolean_get(op->ptr, "reset");
 
 	if (rmd->fracture_mode == MOD_FRACTURE_EXTERNAL)




More information about the Bf-blender-cvs mailing list