[Bf-blender-cvs] [56f42dacd28] fracture_modifier: fix for cluster percentage, was incorrectly calculated before and only used if regular percentage was set
Martin Felke
noreply at git.blender.org
Fri Jun 2 10:03:08 CEST 2017
Commit: 56f42dacd282c80cea44cc39f7d9f7900656faf9
Author: Martin Felke
Date: Fri Jun 2 10:02:50 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rB56f42dacd282c80cea44cc39f7d9f7900656faf9
fix for cluster percentage, was incorrectly calculated before and only used if regular percentage was set
===================================================================
M source/blender/blenkernel/intern/rigidbody.c
===================================================================
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index b2f8a31b549..5ebb90cfd46 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -3699,12 +3699,12 @@ static void handle_breaking_percentage(FractureModifierData* fmd, Object *ob, Me
RB_constraint_set_enabled(con->physics_constraint, false);
if (con->mi1->rigidbody->flag & RBO_FLAG_KINEMATIC) {
activateRigidbody(con->mi1->rigidbody, rbw, con->mi1, ob);
- activateCluster(con->mi1, mi->particle_index, rbw, ob);
+ activateCluster(con->mi1, con->mi1->particle_index, rbw, ob);
}
if (con->mi2->rigidbody->flag & RBO_FLAG_KINEMATIC) {
activateRigidbody(con->mi2->rigidbody, rbw, con->mi2, ob);
- activateCluster(con->mi2, mi->particle_index, rbw, ob);
+ activateCluster(con->mi2, con->mi2->particle_index, rbw, ob);
}
}
}
@@ -3713,8 +3713,7 @@ static void handle_breaking_percentage(FractureModifierData* fmd, Object *ob, Me
}
}
-
- if (cons > 0) {
+ if (cons > 0 && breaking_percentage > 0) {
if ((float)broken_cons / (float)cons * 100 >= breaking_percentage) {
/* break all cons if over percentage */
for (i = 0; i < cons; i++) {
@@ -4022,7 +4021,7 @@ static bool do_update_modifier(Scene* scene, Object* ob, RigidBodyWorld *rbw, bo
float weight = mi->thresh_weight;
int breaking_percentage = fmd->breaking_percentage_weighted ? (fmd->breaking_percentage * weight) : fmd->breaking_percentage;
- if (fmd->breaking_percentage > 0 || (fmd->breaking_percentage_weighted && weight > 0)) {
+ if (fmd->breaking_percentage > 0 || (fmd->breaking_percentage_weighted && weight > 0) || (fmd->cluster_breaking_percentage > 0)) {
handle_breaking_percentage(fmd, ob, mi, rbw, breaking_percentage);
}
}
More information about the Bf-blender-cvs
mailing list