diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2015-02-17 17:20:51 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-02-17 17:22:02 +0300 |
commit | ea2fc5b9d6000a61dba5e8c37a36231a2f22e6d4 (patch) | |
tree | e4cac0891f8cdf5cf9bc56918f6bb7d794ca710a /source/blender/blenkernel/intern/particle_child.c | |
parent | 9b845359a6b9b5d797ae4f6d6fc4628ab76f088f (diff) |
Fix for particle path drawing with black tips.
The last path segment can be shortended due to randomized path length.
In that case the last segment's color vector was not defined.
Diffstat (limited to 'source/blender/blenkernel/intern/particle_child.c')
-rw-r--r-- | source/blender/blenkernel/intern/particle_child.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/particle_child.c b/source/blender/blenkernel/intern/particle_child.c index 33541c3a7fd..7b2e07ea96f 100644 --- a/source/blender/blenkernel/intern/particle_child.c +++ b/source/blender/blenkernel/intern/particle_child.c @@ -367,16 +367,22 @@ void psys_apply_child_modifiers(ParticleThreadContext *ctx, struct ListBase *mod if (ma && draw_col_ma) get_strand_normal(ma, ornor, cur_length, (key-1)->vel); } - if (k == totkeys-1) { - /* last key */ - sub_v3_v3v3(key->vel, key->co, (key-1)->co); - } if (use_length_check && k > 1) { float dvec[3]; /* check if path needs to be cut before actual end of data points */ - if (!check_path_length(k, keys, key, max_length, step_length, &cur_length, dvec)) + if (!check_path_length(k, keys, key, max_length, step_length, &cur_length, dvec)) { + /* last key */ + sub_v3_v3v3(key->vel, key->co, (key-1)->co); + if (ma && draw_col_ma) { + copy_v3_v3(key->col, &ma->r); + } break; + } + } + if (k == totkeys-1) { + /* last key */ + sub_v3_v3v3(key->vel, key->co, (key-1)->co); } if (ma && draw_col_ma) { |