diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2015-05-19 12:56:44 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-05-19 12:56:44 +0300 |
commit | f0e00033d196acaec5496e06eb8c2b51b0880f73 (patch) | |
tree | 46c32899053c921acdb6279f1f73addcefef7c35 /source/blender/blenkernel/intern | |
parent | 66d39ad4174b8be46cad211fd7b2f427667bfcc0 (diff) |
Fix for incorrect vertex loops when calculating strands.
This was using vprev from previous strands, leading to spurious changes
on untouched strands when combing.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/editstrands.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/editstrands.c b/source/blender/blenkernel/intern/editstrands.c index b7a4817cb86..03871bc16e7 100644 --- a/source/blender/blenkernel/intern/editstrands.c +++ b/source/blender/blenkernel/intern/editstrands.c @@ -160,13 +160,14 @@ void BKE_editstrands_solve_constraints(Object *ob, BMEditStrands *es, BMEditStra static void editstrands_calc_segment_lengths(BMesh *bm) { - BMVert *root, *v, *vprev; - BMIter iter, iter_strand; - int k; + BMVert *root; + BMIter iter; BM_ITER_STRANDS(root, &iter, bm, BM_STRANDS_OF_MESH) { - BM_ITER_STRANDS_ELEM_INDEX(v, &iter_strand, root, BM_VERTS_OF_STRAND, k) { - if (k > 0) { + BMVert *v, *vprev = NULL; + BMIter iter_strand; + BM_ITER_STRANDS_ELEM(v, &iter_strand, root, BM_VERTS_OF_STRAND) { + if (vprev) { float length = len_v3v3(v->co, vprev->co); BM_elem_float_data_named_set(&bm->vdata, v, CD_PROP_FLT, CD_HAIR_SEGMENT_LENGTH, length); } |