diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2015-02-09 15:58:24 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-02-09 15:58:24 +0300 |
commit | 5186062d582dee0ce4ef6c461e45d1654aff3e16 (patch) | |
tree | 1c2361b1852445b60985369e93c6dfd27ef14f03 /source/blender/editors | |
parent | 017e2fb28469595d4302ee8facc72ad1b216e253 (diff) |
Integration of particle shapekeys with the depsgraph and driver eval.
It's a bit messy, but that is to be expected: all of the areas involved
(particles, shapekeys, depsgraph, drivers) are badly designed and
supposed to get major refactoring ...
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/animation/anim_filter.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index d6daa64a9f2..09c8af8c1b4 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -90,6 +90,7 @@ #include "BKE_modifier.h" #include "BKE_node.h" #include "BKE_mask.h" +#include "BKE_particle.h" #include "BKE_sequencer.h" #include "ED_anim_api.h" @@ -2260,6 +2261,7 @@ static size_t animdata_filter_dopesheet_ob(bAnimContext *ac, ListBase *anim_data BEGIN_ANIMFILTER_SUBCHANNELS(EXPANDED_OBJC(ob)) { Key *key = BKE_key_from_object(ob); + ParticleSystem *psys; /* object-level animation */ if ((ob->adt) && !(ads->filterflag & ADS_FILTER_NOOBJ)) { @@ -2270,6 +2272,11 @@ static size_t animdata_filter_dopesheet_ob(bAnimContext *ac, ListBase *anim_data if ((key && key->adt) && !(ads->filterflag & ADS_FILTER_NOSHAPEKEYS)) { tmp_items += animdata_filter_ds_keyanim(ac, &tmp_data, ads, ob, key, filter_mode); } + for (psys = ob->particlesystem.first; psys; psys = psys->next) { + if ((psys->key && psys->key->adt) && !(ads->filterflag & ADS_FILTER_NOSHAPEKEYS)) { + tmp_items += animdata_filter_ds_keyanim(ac, &tmp_data, ads, ob, psys->key, filter_mode); + } + } /* modifiers */ if ((ob->modifiers.first) && !(ads->filterflag & ADS_FILTER_NOMODIFIERS)) { |