[Bf-blender-cvs] [0adaddd] fracture_modifier: fix for passive parenting hack, it was not taken into account after transforming the object interactively
Martin Felke
noreply at git.blender.org
Mon Jan 25 17:58:33 CET 2016
Commit: 0adaddd4c402ab3b5dc8bc7289ca3b7c53c1446b
Author: Martin Felke
Date: Mon Jan 25 17:58:27 2016 +0100
Branches: fracture_modifier
https://developer.blender.org/rB0adaddd4c402ab3b5dc8bc7289ca3b7c53c1446b
fix for passive parenting hack, it was not taken into account after transforming the object interactively
===================================================================
M source/blender/blenkernel/intern/rigidbody.c
M source/blender/editors/transform/transform_conversions.c
===================================================================
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index 4d9e2f3..19232d3 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -3375,7 +3375,7 @@ static bool do_update_modifier(Scene* scene, Object* ob, RigidBodyWorld *rbw, bo
int count = 0, brokencount = 0, plastic = 0;
float frame = 0;
- if (rebuild)
+ if (rebuild || is_zero_m4(fmd->passive_parent_mat))
{
copy_m4_m4(fmd->passive_parent_mat, ob->obmat);
}
@@ -3797,8 +3797,10 @@ static bool do_sync_modifier(ModifierData *md, Object *ob, RigidBodyWorld *rbw,
if (!is_zero_m4(fmd->origmat) && rbw && !(rbw->flag & RBW_FLAG_OBJECT_CHANGED))
{
- //if (fmd->fracture_mode == MOD_FRACTURE_PREFRACTURED)
- copy_m4_m4(ob->obmat, fmd->origmat);
+ if (fmd->fracture_mode != MOD_FRACTURE_EXTERNAL)
+ {
+ copy_m4_m4(ob->obmat, fmd->origmat);
+ }
}
return modFound;
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 28b8dc4..a27ca80 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -6358,7 +6358,14 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
if (md != NULL) {
//reset original matrix of modifier
fmd = (FractureModifierData*)md;
- copy_m4_m4(fmd->origmat, td->ext->obmat);
+ if (fmd->fracture_mode != MOD_FRACTURE_EXTERNAL)
+ {
+ copy_m4_m4(fmd->origmat, td->ext->obmat);
+ }
+ else
+ {
+ zero_m4(fmd->origmat);
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list