diff options
Diffstat (limited to 'source/blender/editors/animation')
-rw-r--r-- | source/blender/editors/animation/anim_channels_defines.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 9f2681fbf7a..8e0452de8ea 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -4212,6 +4212,24 @@ void ANIM_channel_debug_print_info(bAnimListElem *ale, short indent_level) } } +/* Retrieves the Action associated with this animation channel. */ +bAction *ANIM_channel_action_get(const bAnimListElem *ale) +{ + if (ale->datatype == ALE_ACT) { + return (bAction *)ale->key_data; + } + + if (ELEM(ale->type, ANIMTYPE_GROUP, ANIMTYPE_FCURVE)) { + ID *owner = ale->fcurve_owner_id; + + if (owner && GS(owner->name) == ID_AC) { + return (bAction *)owner; + } + } + + return NULL; +} + /* --------------------------- */ /* Check if some setting for a channel is enabled |