Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2005-04-01 05:25:00 +0400
committerMartin Poirier <theeth@yahoo.com>2005-04-01 05:25:00 +0400
commit9184b03ddf16bbf6b0e14ade2b0c2368fabdc8ce (patch)
tree8174eac085ca9129d7872e31a9ea4d3bac8ce323 /source/blender
parent4db0cbc74151e78bb59a02b094fee7677705aa30 (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-xsource/blender/src/transform.c10
-rwxr-xr-xsource/blender/src/transform_generics.c2
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.