From b50fe8aa9cd65dd7e1fdba59a3d09035e94864bf Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 14 Jul 2011 13:36:15 +0000 Subject: [PATCH] Camera tracking integration =========================== Enable markers on transform --- .../editors/transform/transform_conversions.c | 23 ++++++++----------- .../editors/transform/transform_generics.c | 12 ++++++++++ source/blender/makesdna/DNA_tracking_types.h | 3 +++ 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 16e3370c8f0..73ab60e2026 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -5249,24 +5249,19 @@ static void trackToTransData(SpaceClip *sc, TransData *td, TransData2D *td2d, Mo { MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); - if((marker->flag&MARKER_DISABLED)==0) { - if(track->flag&SELECT) - markerToTransDataInit(td++, td2d++, marker->pos, NULL); + track->transflag= marker->flag; - if(track->pat_flag&SELECT) { - markerToTransDataInit(td++, td2d++, track->pat_min, marker->pos); - markerToTransDataInit(td++, td2d++, track->pat_max, marker->pos); - } + marker->flag&= ~MARKER_DISABLED; + + if(track->flag&SELECT) + markerToTransDataInit(td++, td2d++, marker->pos, NULL); + + if(track->pat_flag&SELECT) { + markerToTransDataInit(td++, td2d++, track->pat_min, marker->pos); + markerToTransDataInit(td++, td2d++, track->pat_max, marker->pos); } if(track->search_flag&SELECT) { - if(marker->flag&MARKER_DISABLED) { - markerToTransDataInit(td++, td2d++, marker->pos, NULL); - - markerToTransDataInit(td++, td2d++, track->pat_min, marker->pos); - markerToTransDataInit(td++, td2d++, track->pat_max, marker->pos); - } - markerToTransDataInit(td++, td2d++, track->search_min, marker->pos); markerToTransDataInit(td++, td2d++, track->search_max, marker->pos); } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 8410bc45b65..7d7278f0f52 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -848,6 +848,18 @@ void recalcData(TransInfo *t) SpaceClip *sc= t->sa->spacedata.first; MovieClip *clip= ED_space_clip(sc); MovieTrackingTrack *track; + + if(t->state == TRANS_CANCEL) { + track= clip->tracking.tracks.first; + while(track) { + MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); + + marker->flag= track->transflag; + + track= track->next; + } + } + flushTransTracking(t); track= clip->tracking.tracks.first; diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h index b45631bc276..0608890bc63 100644 --- a/source/blender/makesdna/DNA_tracking_types.h +++ b/source/blender/makesdna/DNA_tracking_types.h @@ -93,6 +93,9 @@ typedef struct MovieTrackingTrack { /* ** UI editing ** */ int flag, pat_flag, search_flag; /* flags (selection, ...) */ + short transflag; /* transform flags */ + + char pad3[6]; } MovieTrackingTrack; typedef struct MovieTrackingSettings {