Fix rest of #28693: Proportional edit hangs on mesh object with high scale
Patchy by Juha Maki-Kanto
This commit is contained in:
@@ -1807,7 +1807,7 @@ void flushTransParticles(TransInfo *t)
|
|||||||
/* ********************* mesh ****************** */
|
/* ********************* mesh ****************** */
|
||||||
|
|
||||||
/* proportional distance based on connectivity */
|
/* 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)
|
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 (v1->f2) {
|
||||||
if (v2->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;
|
v1->tmp.fp = v2->tmp.fp + edge_len;
|
||||||
done = 1;
|
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;
|
v2->tmp.fp = v1->tmp.fp + edge_len;
|
||||||
done = 1;
|
done = 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user