diff options
Diffstat (limited to 'source/blender/bmesh/tools/bmesh_path.c')
-rw-r--r-- | source/blender/bmesh/tools/bmesh_path.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/bmesh/tools/bmesh_path.c b/source/blender/bmesh/tools/bmesh_path.c index 9fc1996e51a..060d0dd969b 100644 --- a/source/blender/bmesh/tools/bmesh_path.c +++ b/source/blender/bmesh/tools/bmesh_path.c @@ -193,6 +193,14 @@ static void edgetag_add_adjacent(Heap *heap, BMEdge *e1, BMEdge **edges_prev, fl const int e1_index = BM_elem_index_get(e1); BM_ITER_ELEM (v, &viter, e1, BM_VERTS_OF_EDGE) { + + /* don't walk over previous vertex */ + if ((edges_prev[e1_index]) && + (BM_vert_in_edge(edges_prev[e1_index], v))) + { + continue; + } + BM_ITER_ELEM (e2, &eiter, v, BM_EDGES_OF_VERT) { if (!BM_elem_flag_test(e2, BM_ELEM_TAG)) { /* we know 'e2' is not visited, check it out! */ |