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:
authorCampbell Barton <ideasman42@gmail.com>2013-02-03 10:09:29 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-02-03 10:09:29 +0400
commit1f21efdeac19d57b60554da920935a97d682b9b9 (patch)
tree60e33d59cc1abe8f4d51a6f9cf5a70ae55462a2f /source/blender/editors/transform
parentf0d4b85feffb625efb406d3fba81b076a3a1fc4f (diff)
fix [#34073] Combined EdgeLoop slides weirdly on even try
concave check on co-linear edges could fail, avoid by using the loop-direction + face normal.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index f6c9c27dd76..cfa6a72163e 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -4920,7 +4920,6 @@ static BMLoop *get_next_loop(BMVert *v, BMLoop *l,
/* When there is no edge to slide along,
* we must slide along the vector defined by the face we're attach to */
BMLoop *l_tmp = BM_face_vert_share_loop(l_first->f, v);
- float tvec[3];
BLI_assert(ELEM(l_tmp->e, e_prev, e_next) && ELEM(l_tmp->prev->e, e_prev, e_next));
@@ -4930,12 +4929,9 @@ static BMLoop *get_next_loop(BMVert *v, BMLoop *l,
sub_v3_v3v3(vec_accum, l_tmp->next->next->v->co, v->co);
}
else {
- BM_loop_calc_face_tangent(l_tmp, vec_accum);
- if (!BM_loop_is_convex(l_tmp)) {
- negate_v3(vec_accum);
- }
- cross_v3_v3v3(tvec, vec_accum, l_tmp->f->no);
- cross_v3_v3v3(vec_accum, l_tmp->f->no, tvec);
+ float tdir[3];
+ BM_loop_calc_face_direction(l_tmp, tdir);
+ cross_v3_v3v3(vec_accum, l_tmp->f->no, tdir);
len_v3_ensure(vec_accum, (BM_edge_calc_length(e_prev) + BM_edge_calc_length(e_next)) / 2.0f);
}
}