diff options
author | Martin Poirier <theeth@yahoo.com> | 2005-04-01 05:25:00 +0400 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2005-04-01 05:25:00 +0400 |
commit | 9184b03ddf16bbf6b0e14ade2b0c2368fabdc8ce (patch) | |
tree | 8174eac085ca9129d7872e31a9ea4d3bac8ce323 /source/blender | |
parent | 4db0cbc74151e78bb59a02b094fee7677705aa30 (diff) |
Sacre bleh another bugfix!
Mesh Connected PET was acting weird on geometry that curved on itself (reported by Desoto). Turned out the part of the floodfill working on verts already connected was just doing one case out of the two useful ones (little drawings helped :P).
Diffstat (limited to 'source/blender')
-rwxr-xr-x | source/blender/src/transform.c | 10 | ||||
-rwxr-xr-x | source/blender/src/transform_generics.c | 2 |
2 files changed, 11 insertions, 1 deletions
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. |