Fix rest of #28693: Proportional edit hangs on mesh object with high scale

Patchy by Juha Maki-Kanto
This commit is contained in:
Sergey Sharybin
2011-09-22 15:46:34 +00:00
parent 402f583abd
commit 1ca02a8d29

View File

@@ -1807,7 +1807,7 @@ void flushTransParticles(TransInfo *t)
/* ********************* mesh ****************** */
/* proportional distance based on connectivity */
#define THRESHOLD 0.0001f
#define THRESHOLDFACTOR (1.0f-0.0001f)
static int connectivity_edge(float mtx[][3], EditVert *v1, EditVert *v2)
{
@@ -1828,10 +1828,10 @@ static int connectivity_edge(float mtx[][3], EditVert *v1, EditVert *v2)
if (v1->f2) {
if (v2->f2) {
if (v2->tmp.fp + edge_len + THRESHOLD < v1->tmp.fp) {
if (v2->tmp.fp + edge_len < THRESHOLDFACTOR * v1->tmp.fp) {
v1->tmp.fp = v2->tmp.fp + edge_len;
done = 1;
} else if (v1->tmp.fp + edge_len + THRESHOLD < v2->tmp.fp) {
} else if (v1->tmp.fp + edge_len < THRESHOLDFACTOR * v2->tmp.fp) {
v2->tmp.fp = v1->tmp.fp + edge_len;
done = 1;
}