Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2020-06-08 00:48:33 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2020-06-08 14:23:37 +0300
commite54fb1b8191ee41ce537c8e1d6bbf81fa5e0302d (patch)
treef09e64c3a7f94925f0729153e1eef707e5d8112d /source/blender/editors/transform/transform_convert_tracking.c
parent826769d1c7b5b56124b45512feb70d2e8607c0f5 (diff)
Cleanup: Move each recalcData 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.c52
1 files changed, 50 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_convert_tracking.c b/source/blender/editors/transform/transform_convert_tracking.c
index 6704567a76b..0f00f5bc318 100644
--- a/source/blender/editors/transform/transform_convert_tracking.c
+++ b/source/blender/editors/transform/transform_convert_tracking.c
@@ -608,11 +608,11 @@ void cancelTransTracking(TransInfo *t)
/** \} */
/* -------------------------------------------------------------------- */
-/** \name Clip Editor Motion Tracking Transform Creation
+/** \name recalc Motion Tracking TransData
*
* \{ */
-void flushTransTracking(TransInfo *t)
+static void flushTransTracking(TransInfo *t)
{
TransData *td;
TransData2D *td2d;
@@ -689,4 +689,52 @@ void flushTransTracking(TransInfo *t)
}
}
+/* helper for recalcData() - for Movie Clip transforms */
+void recalcData_tracking(TransInfo *t)
+{
+ SpaceClip *sc = t->area->spacedata.first;
+
+ if (ED_space_clip_check_show_trackedit(sc)) {
+ MovieClip *clip = ED_space_clip_get_clip(sc);
+ ListBase *tracksbase = BKE_tracking_get_active_tracks(&clip->tracking);
+ MovieTrackingTrack *track;
+ int framenr = ED_space_clip_get_clip_frame_number(sc);
+
+ flushTransTracking(t);
+
+ track = tracksbase->first;
+ while (track) {
+ if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) {
+ MovieTrackingMarker *marker = BKE_tracking_marker_get(track, framenr);
+
+ if (t->mode == TFM_TRANSLATION) {
+ if (TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) {
+ BKE_tracking_marker_clamp(marker, CLAMP_PAT_POS);
+ }
+ if (TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) {
+ BKE_tracking_marker_clamp(marker, CLAMP_SEARCH_POS);
+ }
+ }
+ else if (t->mode == TFM_RESIZE) {
+ if (TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) {
+ BKE_tracking_marker_clamp(marker, CLAMP_PAT_DIM);
+ }
+ if (TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) {
+ BKE_tracking_marker_clamp(marker, CLAMP_SEARCH_DIM);
+ }
+ }
+ else if (t->mode == TFM_ROTATION) {
+ if (TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) {
+ BKE_tracking_marker_clamp(marker, CLAMP_PAT_POS);
+ }
+ }
+ }
+
+ track = track->next;
+ }
+
+ DEG_id_tag_update(&clip->id, 0);
+ }
+}
+
/** \} */