diff --git a/source/blender/src/transform.c b/source/blender/src/transform.c index b7daa7cc49c..edcf80e0684 100755 --- a/source/blender/src/transform.c +++ b/source/blender/src/transform.c @@ -834,6 +834,11 @@ static void editmesh_set_connectivity_distance(int total, float *vectors, EditVe E_NEAR(v2) = E_NEAR(v1); done = 1; } + else if (len2 - len1 > 0.00001f && len1 - lenn > 0.00001f) { + VECCOPY(vec2, vec1); + E_NEAR(v2) = E_NEAR(v1); + done = 1; + } } /* for v1 if not selected */ if (v1->f2 != 2) { @@ -844,6 +849,11 @@ static void editmesh_set_connectivity_distance(int total, float *vectors, EditVe E_NEAR(v1) = E_NEAR(v2); done = 1; } + else if (len1 - len2 > 0.00001f && len2 - lenn > 0.00001f) { + VECCOPY(vec1, vec2); + E_NEAR(v1) = E_NEAR(v2); + done = 1; + } } } else { diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c index fc0ff34f93d..ad49b74b1ff 100755 --- a/source/blender/src/transform_generics.c +++ b/source/blender/src/transform_generics.c @@ -714,7 +714,7 @@ void calculatePropRatio(TransInfo *t) if (td->flag & TD_SELECTED) { td->factor = 1.0f; } - else if (td->flag & TD_NOTCONNECTED || td->dist > t->propsize || td->rdist > t->propsize) { + else if (td->flag & TD_NOTCONNECTED || td->dist > t->propsize) { /* The elements are sorted according to their dist member in the array, that means we can stop when it finds one element outside of the propsize.