[Bf-blender-cvs] [eeae52a747b] temp-transform-conversions-split: Transform: Move Tracking conversion to its own file

mano-wii noreply at git.blender.org
Thu Sep 5 15:48:44 CEST 2019


Commit: eeae52a747bb872fb17d634922e757e7ae46cc81
Author: mano-wii
Date:   Thu Sep 5 09:05:16 2019 -0300
Branches: temp-transform-conversions-split
https://developer.blender.org/rBeeae52a747bb872fb17d634922e757e7ae46cc81

Transform: Move Tracking conversion to its own file

===================================================================

M	source/blender/editors/transform/CMakeLists.txt
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_conversions.h
A	source/blender/editors/transform/transform_conversions_tracking.c

===================================================================

diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt
index d9887063e4d..e7c9718e31a 100644
--- a/source/blender/editors/transform/CMakeLists.txt
+++ b/source/blender/editors/transform/CMakeLists.txt
@@ -54,6 +54,7 @@ set(SRC
   transform_conversions_object.c
   transform_conversions_particle.c
   transform_conversions_sequencer.c
+  transform_conversions_tracking.c
   transform_generics.c
   transform_gizmo_2d.c
   transform_gizmo_3d.c
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 26dc747b01a..3db777b89ac 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -2781,569 +2781,6 @@ int special_transform_moving(TransInfo *t)
 
 /* * motion tracking * */
 
-enum transDataTracking_Mode {
-  transDataTracking_ModeTracks = 0,
-  transDataTracking_ModeCurves = 1,
-  transDataTracking_ModePlaneTracks = 2,
-};
-
-typedef struct TransDataTracking {
-  int mode, flag;
-
-  /* tracks transformation from main window */
-  int area;
-  const float *relative, *loc;
-  float soffset[2], srelative[2];
-  float offset[2];
-
-  float (*smarkers)[2];
-  int markersnr;
-  MovieTrackingMarker *markers;
-
-  /* marker transformation from curves editor */
-  float *prev_pos, scale;
-  short coord;
-
-  MovieTrackingTrack *track;
-  MovieTrackingPlaneTrack *plane_track;
-} TransDataTracking;
-
-static void markerToTransDataInit(TransData *td,
-                                  TransData2D *td2d,
-                                  TransDataTracking *tdt,
-                                  MovieTrackingTrack *track,
-                                  MovieTrackingMarker *marker,
-                                  int area,
-                                  float loc[2],
-                                  float rel[2],
-                                  const float off[2],
-                                  const float aspect[2])
-{
-  int anchor = area == TRACK_AREA_POINT && off;
-
-  tdt->mode = transDataTracking_ModeTracks;
-
-  if (anchor) {
-    td2d->loc[0] = rel[0] * aspect[0]; /* hold original location */
-    td2d->loc[1] = rel[1] * aspect[1];
-
-    tdt->loc = loc;
-    td2d->loc2d = loc; /* current location */
-  }
-  else {
-    td2d->loc[0] = loc[0] * aspect[0]; /* hold original location */
-    td2d->loc[1] = loc[1] * aspect[1];
-
-    td2d->loc2d = loc; /* current location */
-  }
-  td2d->loc[2] = 0.0f;
-
-  tdt->relative = rel;
-  tdt->area = area;
-
-  tdt->markersnr = track->markersnr;
-  tdt->markers = track->markers;
-  tdt->track = track;
-
-  if (rel) {
-    if (!anchor) {
-      td2d->loc[0] += rel[0] * aspect[0];
-      td2d->loc[1] += rel[1] * aspect[1];
-    }
-
-    copy_v2_v2(tdt->srelative, rel);
-  }
-
-  if (off) {
-    copy_v2_v2(tdt->soffset, off);
-  }
-
-  td->flag = 0;
-  td->loc = td2d->loc;
-  copy_v3_v3(td->iloc, td->loc);
-
-  // copy_v3_v3(td->center, td->loc);
-  td->flag |= TD_INDIVIDUAL_SCALE;
-  td->center[0] = marker->pos[0] * aspect[0];
-  td->center[1] = marker->pos[1] * aspect[1];
-
-  memset(td->axismtx, 0, sizeof(td->axismtx));
-  td->axismtx[2][2] = 1.0f;
-
-  td->ext = NULL;
-  td->val = NULL;
-
-  td->flag |= TD_SELECTED;
-  td->dist = 0.0;
-
-  unit_m3(td->mtx);
-  unit_m3(td->smtx);
-}
-
-static void trackToTransData(const int framenr,
-                             TransData *td,
-                             TransData2D *td2d,
-                             TransDataTracking *tdt,
-                             MovieTrackingTrack *track,
-                             const float aspect[2])
-{
-  MovieTrackingMarker *marker = BKE_tracking_marker_ensure(track, framenr);
-
-  tdt->flag = marker->flag;
-  marker->flag &= ~(MARKER_DISABLED | MARKER_TRACKED);
-
-  markerToTransDataInit(td++,
-                        td2d++,
-                        tdt++,
-                        track,
-                        marker,
-                        TRACK_AREA_POINT,
-                        track->offset,
-                        marker->pos,
-                        track->offset,
-                        aspect);
-
-  if (track->flag & SELECT) {
-    markerToTransDataInit(
-        td++, td2d++, tdt++, track, marker, TRACK_AREA_POINT, marker->pos, NULL, NULL, aspect);
-  }
-
-  if (track->pat_flag & SELECT) {
-    int a;
-
-    for (a = 0; a < 4; a++) {
-      markerToTransDataInit(td++,
-                            td2d++,
-                            tdt++,
-                            track,
-                            marker,
-                            TRACK_AREA_PAT,
-                            marker->pattern_corners[a],
-                            marker->pos,
-                            NULL,
-                            aspect);
-    }
-  }
-
-  if (track->search_flag & SELECT) {
-    markerToTransDataInit(td++,
-                          td2d++,
-                          tdt++,
-                          track,
-                          marker,
-                          TRACK_AREA_SEARCH,
-                          marker->search_min,
-                          marker->pos,
-                          NULL,
-                          aspect);
-
-    markerToTransDataInit(td++,
-                          td2d++,
-                          tdt++,
-                          track,
-                          marker,
-                          TRACK_AREA_SEARCH,
-                          marker->search_max,
-                          marker->pos,
-                          NULL,
-                          aspect);
-  }
-}
-
-static void planeMarkerToTransDataInit(TransData *td,
-                                       TransData2D *td2d,
-                                       TransDataTracking *tdt,
-                                       MovieTrackingPlaneTrack *plane_track,
-                                       float corner[2],
-                                       const float aspect[2])
-{
-  tdt->mode = transDataTracking_ModePlaneTracks;
-  tdt->plane_track = plane_track;
-
-  td2d->loc[0] = corner[0] * aspect[0]; /* hold original location */
-  td2d->loc[1] = corner[1] * aspect[1];
-
-  td2d->loc2d = corner; /* current location */
-  td2d->loc[2] = 0.0f;
-
-  td->flag = 0;
-  td->loc = td2d->loc;
-  copy_v3_v3(td->iloc, td->loc);
-  copy_v3_v3(td->center, td->loc);
-
-  memset(td->axismtx, 0, sizeof(td->axismtx));
-  td->axismtx[2][2] = 1.0f;
-
-  td->ext = NULL;
-  td->val = NULL;
-
-  td->flag |= TD_SELECTED;
-  td->dist = 0.0;
-
-  unit_m3(td->mtx);
-  unit_m3(td->smtx);
-}
-
-static void planeTrackToTransData(const int framenr,
-                                  TransData *td,
-                                  TransData2D *td2d,
-                                  TransDataTracking *tdt,
-                                  MovieTrackingPlaneTrack *plane_track,
-                                  const float aspect[2])
-{
-  MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_ensure(plane_track, framenr);
-  int i;
-
-  tdt->flag = plane_marker->flag;
-  plane_marker->flag &= ~PLANE_MARKER_TRACKED;
-
-  for (i = 0; i < 4; i++) {
-    planeMarkerToTransDataInit(td++, td2d++, tdt++, plane_track, plane_marker->corners[i], aspect);
-  }
-}
-
-static void transDataTrackingFree(TransInfo *UNUSED(t),
-                                  TransDataContainer *UNUSED(tc),
-                                  TransCustomData *custom_data)
-{
-  if (custom_data->data) {
-    TransDataTracking *tdt = custom_data->data;
-    if (tdt->smarkers) {
-      MEM_freeN(tdt->smarkers);
-    }
-
-    MEM_freeN(tdt);
-    custom_data->data = NULL;
-  }
-}
-
-static void createTransTrackingTracksData(bContext *C, TransInfo *t)
-{
-  TransData *td;
-  TransData2D *td2d;
-  SpaceClip *sc = CTX_wm_space_clip(C);
-  MovieClip *clip = ED_space_clip_get_clip(sc);
-  ListBase *tracksbase = BKE_tracking_get_active_tracks(&clip->tracking);
-  ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(&clip->tracking);
-  MovieTrackingTrack *track;
-  MovieTrackingPlaneTrack *plane_track;
-  TransDataTracking *tdt;
-  int framenr = ED_space_clip_get_clip_frame_number(sc);
-
-  TransDataContainer *tc = TRANS_DATA_CONTAINER_FIRST_SINGLE(t);
-
-  /* count */
-  tc->data_len = 0;
-
-  track = tracksbase->first;
-  while (track) {
-    if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) {
-      tc->data_len++; /* offset */
-
-      if (track->flag & SELECT) {
-        tc->data_len++;
-      }
-
-      if (track->pat_flag & SELECT) {
-        tc->data_len += 4;
-      }
-
-      if (track->search_flag & SELECT) {
-        tc->data_len += 2;
-      }
-    }
-
-    track = track->next;
-  }
-
-  for (plane_track = plane_tracks_base->first; plane_track; plane_track = plane_track->next) {
-    if (PLANE_TRACK_VIEW_SELECTED(plane_track)) {
-      tc->data_len += 4;
-    }
-  }
-
-  if (tc->data_len == 0) {
-    return;
-  }
-
-  td = tc->data = MEM_callocN(tc->data_len * sizeof(TransData), "TransTracking TransData");
-  td2d = tc->data_2d = MEM_callocN(tc->data_len * sizeof(TransData2D),
-                                   "TransTracking TransData2D");
-  tdt = tc->custom.type.data = MEM_callocN(tc->data_len * sizeof(TransDataTracking),
-                                           "TransTracking TransDataTracking");
-
-  tc->custom.type.free_cb = transDataTrackingFree;
-
-  /* create actual data */
-  track = tracksbase->first;
-  while (track) {
-    if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) {
-      trackToTransData(framenr, td, td2d, tdt, track, t->aspect);
-
-      /* offset */
-      td++;
-      td2d++;
-      tdt++;
-
-      if (track->flag & SELECT) {
-        td++;
-        td2d++;
-        tdt++;
-      }
-
-      if (track->pat_flag & SELECT) {
-        td += 4;
-        td2d += 4;
-        tdt += 4;
-      }
-
-      if (track->search_flag & SELECT) {
-        td += 2;
-        td2d += 2;
-        tdt += 2;
-      }
-    }
-
-    track = track->next;
-  }
-
-  for (plane_track = plane_tracks_base->first; plane_track; plane_track = plane_track->

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list