[Bf-blender-cvs] [55aa21bb164] fracture_modifier: fix attempt for uncontrolled "snapping" when using keep distort
Martin Felke
noreply at git.blender.org
Wed Jun 14 19:33:40 CEST 2017
Commit: 55aa21bb16447904f97b0286a3f2ee355d75c6c8
Author: Martin Felke
Date: Wed Jun 14 19:33:30 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rB55aa21bb16447904f97b0286a3f2ee355d75c6c8
fix attempt for uncontrolled "snapping" when using keep distort
===================================================================
M source/blender/modifiers/intern/MOD_fracture.c
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c
index 04eb1b0b020..56d8cab8fe6 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -3332,68 +3332,66 @@ static void prepare_automerge(FractureModifierData *fmd, BMesh *bm)
mul_v3_fl(no, inverse);
verts = 0;
- //if (!vg->exceeded)
+ if ((len_squared_v3v3(co, v1->co) > (dist * dist)))
{
- for (sv = vg->verts.first; sv; sv = sv->next)
- {
- v2 = bm->vtable[sv->index];
-
- if ((len_squared_v3v3(co, v2->co) > (dist * dist)))
- {
- sv->moved = true;
- }
-
- if (len_squared_v3v3(co, v2->co) <= fmd->automerge_dist * fmd->automerge_dist)
- {
- if (!sv->exceeded)
- {
- copy_v3_v3(v2->co, co);
- copy_v3_v3(v2->no, no);
- }
- }
- else {
- sv->exceeded = true;
+ vg->moved = true;
+ }
- if (!sv->deltas_set){
- sub_v3_v3v3(sv->delta, co, v2->co);
- clamp_delta(sv, fmd);
- sv->deltas_set = true;
- }
- }
+ if (len_squared_v3v3(co, v1->co) <= fmd->automerge_dist * fmd->automerge_dist)
+ {
+ if (!vg->exceeded) {
+ copy_v3_v3(v1->co, co);
+ copy_v3_v3(v1->no, no);
}
- if ((len_squared_v3v3(co, v1->co) > (dist * dist)))
+ if (do_calc_delta && vg->deltas_set)
{
- vg->moved = true;
+ calc_delta((SharedVert*)vg, v1);
}
+ }
+ else {
+ vg->exceeded = true;
- if (len_squared_v3v3(co, v1->co) <= fmd->automerge_dist * fmd->automerge_dist)
- {
- if (!vg->exceeded) {
- copy_v3_v3(v1->co, co);
- copy_v3_v3(v1->no, no);
- }
+ if (!vg->deltas_set){
+ sub_v3_v3v3(vg->delta, co, v1->co);
+ clamp_delta((SharedVert*)vg, fmd);
+ vg->deltas_set = true;
}
- else {
+ }
- if (!vg->deltas_set){
- sub_v3_v3v3(vg->delta, co, v1->co);
- clamp_delta((SharedVert*)vg, fmd);
- vg->deltas_set = true;
- }
+ if (vg->exceeded)
+ {
+ BM_ITER_ELEM(e, &iter, v1, BM_EDGES_OF_VERT)
+ {
+ BM_ELEM_CD_SET_FLOAT(e, cd_edge_crease_offset, fmd->inner_crease);
}
}
- if (vg->exceeded)
+ for (sv = vg->verts.first; sv; sv = sv->next)
{
- if (do_calc_delta && vg->deltas_set)
+ v2 = bm->vtable[sv->index];
+
+ if ((len_squared_v3v3(co, v2->co) > (dist * dist)))
{
- calc_delta((SharedVert*)vg, v1);
+ sv->moved = true;
}
- BM_ITER_ELEM(e, &iter, v1, BM_EDGES_OF_VERT)
+ if (len_squared_v3v3(co, v2->co) <= fmd->automerge_dist * fmd->automerge_dist)
{
- BM_ELEM_CD_SET_FLOAT(e, cd_edge_crease_offset, fmd->inner_crease);
+ if (!sv->exceeded)
+ {
+ copy_v3_v3(v2->co, co);
+ copy_v3_v3(v2->no, no);
+ }
+ }
+ else {
+ sv->exceeded = true;
+
+ if (!sv->deltas_set){
+ sub_v3_v3v3(sv->delta, co, v2->co);
+ clamp_delta(sv, fmd);
+ sv->deltas_set = true;
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list