[Bf-blender-cvs] [32949594465] fracture_modifier: attempt to have "plastic" constraint deform by re-constraining via angle, distance
Martin Felke
noreply at git.blender.org
Sun Jun 18 11:08:46 CEST 2017
Commit: 32949594465c8421118196d1694ee82525922b40
Author: Martin Felke
Date: Sun Jun 18 11:08:21 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rB32949594465c8421118196d1694ee82525922b40
attempt to have "plastic" constraint deform by re-constraining via angle, distance
deformation mode happens when breakable is set to false, but angle or distance is 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 53f27f095cb..6d7fffffe55 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -3750,12 +3750,19 @@ static void handle_breaking_angle(FractureModifierData *fmd, Object *ob, RigidBo
{
if (fmd->use_breaking)
{
+ //break constraint
if (rbsc->physics_constraint) {
RB_constraint_set_enabled(rbsc->physics_constraint, false);
activateRigidbody(rbsc->mi1->rigidbody, rbw, rbsc->mi1, ob);
activateRigidbody(rbsc->mi2->rigidbody, rbw, rbsc->mi2, ob);
}
}
+ else {
+ //attempt to make plastic deform by reconstraining the shards
+ if (rbsc->physics_constraint) {
+ BKE_rigidbody_validate_sim_shard_constraint(rbw, fmd, ob, rbsc, true);
+ }
+ }
}
}
@@ -3770,6 +3777,12 @@ static void handle_breaking_angle(FractureModifierData *fmd, Object *ob, RigidBo
activateRigidbody(rbsc->mi2->rigidbody, rbw, rbsc->mi2, ob);
}
}
+ else {
+ //attempt to make plastic deform by reconstraining the shards
+ if (rbsc->physics_constraint) {
+ BKE_rigidbody_validate_sim_shard_constraint(rbw, fmd, ob, rbsc, true);
+ }
+ }
}
}
@@ -3791,6 +3804,12 @@ static void handle_breaking_distance(FractureModifierData *fmd, Object *ob, Rigi
activateRigidbody(rbsc->mi2->rigidbody, rbw, rbsc->mi2, ob);
}
}
+ else {
+ //attempt to make plastic deform by reconstraining the shards
+ if (rbsc->physics_constraint) {
+ BKE_rigidbody_validate_sim_shard_constraint(rbw, fmd, ob, rbsc, true);
+ }
+ }
}
}
@@ -3805,6 +3824,12 @@ static void handle_breaking_distance(FractureModifierData *fmd, Object *ob, Rigi
activateRigidbody(rbsc->mi2->rigidbody, rbw, rbsc->mi2, ob);
}
}
+ else {
+ //attempt to make plastic deform by reconstraining the shards
+ if (rbsc->physics_constraint) {
+ BKE_rigidbody_validate_sim_shard_constraint(rbw, fmd, ob, rbsc, true);
+ }
+ }
}
}
More information about the Bf-blender-cvs
mailing list