diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-03-16 20:41:09 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-03-16 20:42:03 +0400 |
commit | d08e6ab27973d7762d47126347c67012c8526035 (patch) | |
tree | f2b68655dfa7587c2ca0e8166c680e42c4383746 /source | |
parent | 0e9084d5ece71185884d7a63b3e0617254430a29 (diff) |
Fix T39215: Shortest path error
Diffstat (limited to 'source')
-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! */ |