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_tracking.c | |
parent | 63a40ed422bc61e9cd952282a636c53a9d8f3fde (diff) |
Cleanup: Move each special_aftertrans_update to their respective TransData file
Diffstat (limited to 'source/blender/editors/transform/transform_convert_tracking.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert_tracking.c | 65 |
1 files changed, 57 insertions, 8 deletions
diff --git a/source/blender/editors/transform/transform_convert_tracking.c b/source/blender/editors/transform/transform_convert_tracking.c index 0f00f5bc318..36c6116b575 100644 --- a/source/blender/editors/transform/transform_convert_tracking.c +++ b/source/blender/editors/transform/transform_convert_tracking.c @@ -25,15 +25,20 @@ #include "MEM_guardedalloc.h" +#include "BLI_listbase.h" #include "BLI_math.h" #include "BKE_context.h" #include "BKE_movieclip.h" +#include "BKE_node.h" #include "BKE_report.h" #include "BKE_tracking.h" #include "ED_clip.h" +#include "WM_api.h" +#include "WM_types.h" + #include "transform.h" #include "transform_convert.h" @@ -546,7 +551,14 @@ void createTransTrackingData(bContext *C, TransInfo *t) } } -void cancelTransTracking(TransInfo *t) +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name recalc Motion Tracking TransData + * + * \{ */ + +static void cancelTransTracking(TransInfo *t) { TransDataContainer *tc = TRANS_DATA_CONTAINER_FIRST_SINGLE(t); SpaceClip *sc = t->area->spacedata.first; @@ -605,13 +617,6 @@ void cancelTransTracking(TransInfo *t) } } -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name recalc Motion Tracking TransData - * - * \{ */ - static void flushTransTracking(TransInfo *t) { TransData *td; @@ -738,3 +743,47 @@ void recalcData_tracking(TransInfo *t) } /** \} */ + +/* -------------------------------------------------------------------- */ +/** \name Special After Transform Tracking + * \{ */ + +void special_aftertrans_update__movieclip(bContext *C, TransInfo *t) +{ + SpaceClip *sc = t->area->spacedata.first; + MovieClip *clip = ED_space_clip_get_clip(sc); + ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(&clip->tracking); + const int framenr = ED_space_clip_get_clip_frame_number(sc); + /* Update coordinates of modified plane tracks. */ + LISTBASE_FOREACH (MovieTrackingPlaneTrack *, plane_track, plane_tracks_base) { + bool do_update = false; + if (plane_track->flag & PLANE_TRACK_HIDDEN) { + continue; + } + do_update |= PLANE_TRACK_VIEW_SELECTED(plane_track) != 0; + if (do_update == false) { + if ((plane_track->flag & PLANE_TRACK_AUTOKEY) == 0) { + int i; + for (i = 0; i < plane_track->point_tracksnr; i++) { + MovieTrackingTrack *track = plane_track->point_tracks[i]; + if (TRACK_VIEW_SELECTED(sc, track)) { + do_update = true; + break; + } + } + } + } + if (do_update) { + BKE_tracking_track_plane_from_existing_motion(plane_track, framenr); + } + } + if (t->scene->nodetree != NULL) { + /* Tracks can be used for stabilization nodes, + * flush update for such nodes. + */ + nodeUpdateID(t->scene->nodetree, &clip->id); + WM_event_add_notifier(C, NC_SCENE | ND_NODES, NULL); + } +} + +/** \} */ |