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