[Bf-blender-cvs] [1cfb40a] hair_immediate_fixes: 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).
Lukas Tönne
noreply at git.blender.org
Thu Nov 27 22:49:43 CET 2014
Commit: 1cfb40af097fd79aafdf42ac74e4e80335885965
Author: Lukas Tönne
Date: Thu Nov 27 22:48:34 2014 +0100
Branches: hair_immediate_fixes
https://developer.blender.org/rB1cfb40af097fd79aafdf42ac74e4e80335885965
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;
}
More information about the Bf-blender-cvs
mailing list