Commit: 78b72fee5c4b44e6b6799af16bb9d6502c2633e3
Author: Lukas Tönne
Date:   Thu Nov 27 22:48:34 2014 +0100
Branches: hair_immediate_fixes
https://developer.blender.org/rB78b72fee5c4b44e6b6799af16bb9d6502c2633e3

Fix for verts-of-strand iterator: After last edge step has to set the
edge to NULL to avoid infinite looping over the same edge (1-elem disk).

===================================================================

M       source/blender/bmesh/intern/bmesh_strands.c

===================================================================

diff --git a/source/blender/bmesh/intern/bmesh_strands.c 
b/source/blender/bmesh/intern/bmesh_strands.c
index efd4004..1fdd880 100644
--- a/source/blender/bmesh/intern/bmesh_strands.c
+++ b/source/blender/bmesh/intern/bmesh_strands.c
@@ -67,8 +67,13 @@ void *bmstranditer__verts_of_strand_step(struct 
BMIter__vert_of_edge *iter)
                 * with the root being v1 of the first edge.
                 */
                BMVert *v_curr = iter->edata->v1;
+               BMEdge *e_first = iter->edata;
                
                iter->edata = bmesh_disk_edge_next(iter->edata, 
iter->edata->v2);
+               if (iter->edata == e_first) {
+                       /* only one edge means the last segment, terminate */
+                       iter->edata = NULL;
+               }
                
                return v_curr;
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to