diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2020-06-10 02:27:40 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2020-06-10 02:27:51 +0300 |
commit | 46e0ec05ef1fb75fb3e5b4a713a5302ace49e546 (patch) | |
tree | 8eff449f33050c445ee3367c941da57b8b61882e /source/blender/editors/transform/transform_convert_nla.c | |
parent | 63a40ed422bc61e9cd952282a636c53a9d8f3fde (diff) |
Cleanup: Move each special_aftertrans_update to their respective TransData file
Diffstat (limited to 'source/blender/editors/transform/transform_convert_nla.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert_nla.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_convert_nla.c b/source/blender/editors/transform/transform_convert_nla.c index 6ee2e191e69..03da979bbd3 100644 --- a/source/blender/editors/transform/transform_convert_nla.c +++ b/source/blender/editors/transform/transform_convert_nla.c @@ -36,6 +36,8 @@ #include "ED_anim_api.h" #include "ED_markers.h" +#include "WM_api.h" + #include "RNA_access.h" #include "transform.h" @@ -513,3 +515,44 @@ void recalcData_nla(TransInfo *t) } /** \} */ + +/* -------------------------------------------------------------------- */ +/** \name Special After Transform NLA + * \{ */ + +void special_aftertrans_update__nla(bContext *C, TransInfo *UNUSED(t)) +{ + bAnimContext ac; + + /* initialize relevant anim-context 'context' data */ + if (ANIM_animdata_get_context(C, &ac) == 0) { + return; + } + + if (ac.datatype) { + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + short filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT); + + /* get channels to work on */ + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + for (ale = anim_data.first; ale; ale = ale->next) { + NlaTrack *nlt = (NlaTrack *)ale->data; + + /* make sure strips are in order again */ + BKE_nlatrack_sort_strips(nlt); + + /* remove the temp metas */ + BKE_nlastrips_clear_metas(&nlt->strips, 0, 1); + } + + /* free temp memory */ + ANIM_animdata_freelist(&anim_data); + + /* perform after-transfrom validation */ + ED_nla_postop_refresh(&ac); + } +} + +/** \} */ |