[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