diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-09-28 16:18:15 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-09-28 16:25:05 +0300 |
commit | dea7ef4dd99b949fa76c53a1b10641c3acce5c08 (patch) | |
tree | 23e7e1161c378dce5835067054d2aec7b61f40d6 /source/blender/editors/animation/anim_filter.c | |
parent | cbd3827d839b2ff28ae535f674e63611cb1c2c6c (diff) |
Curve pinning: Allow pinning object data without animated object
Special case, so now we can pin tricky cases like animated camera DOF
without requiring to have animation on the object level.
Diffstat (limited to 'source/blender/editors/animation/anim_filter.c')
-rw-r--r-- | source/blender/editors/animation/anim_filter.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 87c73810e63..7893f26a62a 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -2834,6 +2834,19 @@ static bool animdata_filter_base_is_ok(bDopeSheet *ads, Scene *scene, Base *base return true; } + /* Special case. + * We don't do recursive checks for pin, but we need to deal with tricky + * setup like animated camera lens without animated camera location. + * Without such special handle here we wouldn't be able to bin such + * camera data only animation to the editor. + */ + if (ob->adt == NULL && ob->data != NULL) { + AnimData *data_adt = BKE_animdata_from_id(ob->data); + if (data_adt != NULL && (data_adt->flag & ADT_CURVES_ALWAYS_VISIBLE)) { + return true; + } + } + /* check selection and object type filters */ if ((ads->filterflag & ADS_FILTER_ONLYSEL) && !((base->flag & SELECT) /*|| (base == sce->basact)*/)) { /* only selected should be shown */ |