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);
+                       }
+               }
        }
 }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to