diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-03-06 18:07:14 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-03-06 18:07:40 +0400 |
commit | 3d2b53031503d59aa3a96ec2164896aec4c4168e (patch) | |
tree | c1c57b462dbc473b4227ce070bba0a0f36c90b7e /source/blender/editors/space_clip/tracking_ops.c | |
parent | a28dce6cc8d2b8338f220909bacc8ef7b1018677 (diff) |
Hiding plane tracks was never implemented
Diffstat (limited to 'source/blender/editors/space_clip/tracking_ops.c')
-rw-r--r-- | source/blender/editors/space_clip/tracking_ops.c | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index 6f44b47ed61..85e420f3e86 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -252,7 +252,7 @@ static int delete_track_exec(bContext *C, wmOperator *UNUSED(op)) { next_plane_track = plane_track->next; - if (plane_track->flag & SELECT) { + if (PLANE_TRACK_VIEW_SELECTED(plane_track)) { BKE_tracking_plane_track_free(plane_track); BLI_freelinkN(plane_tracks_base, plane_track); changed = true; @@ -333,7 +333,7 @@ static int delete_marker_exec(bContext *C, wmOperator *UNUSED(op)) { plane_track_next = plane_track->next; - if (plane_track->flag & SELECT) { + if (PLANE_TRACK_VIEW_SELECTED(plane_track)) { MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_get_exact(plane_track, framenr); if (plane_marker) { @@ -2792,9 +2792,12 @@ static int hide_tracks_exec(bContext *C, wmOperator *op) SpaceClip *sc = CTX_wm_space_clip(C); MovieClip *clip = ED_space_clip_get_clip(sc); MovieTrackingTrack *track; + MovieTrackingPlaneTrack *plane_track; MovieTracking *tracking = &clip->tracking; ListBase *tracksbase = BKE_tracking_get_active_tracks(tracking); + ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(tracking); MovieTrackingTrack *act_track = BKE_tracking_track_get_active(tracking); + MovieTrackingPlaneTrack *act_plane_track = BKE_tracking_plane_track_get_active(&clip->tracking); int unselected; unselected = RNA_boolean_get(op->ptr, "unselected"); @@ -2819,6 +2822,22 @@ static int hide_tracks_exec(bContext *C, wmOperator *op) sc->flag &= ~SC_LOCK_SELECTION; } + for (plane_track = plane_tracks_base->first; + plane_track; + plane_track = plane_track->next) + { + if (unselected == 0 && plane_track->flag & SELECT) { + plane_track->flag |= PLANE_TRACK_HIDDEN; + } + else if (unselected == 1 && (plane_track->flag & SELECT) == 0) { + plane_track->flag |= PLANE_TRACK_HIDDEN; + } + } + + if (act_plane_track && act_plane_track->flag & TRACK_HIDDEN) { + clip->tracking.act_plane_track = NULL; + } + BKE_tracking_dopesheet_tag_update(tracking); WM_event_add_notifier(C, NC_MOVIECLIP | ND_DISPLAY, NULL); @@ -2852,7 +2871,9 @@ static int hide_tracks_clear_exec(bContext *C, wmOperator *UNUSED(op)) MovieClip *clip = ED_space_clip_get_clip(sc); MovieTracking *tracking = &clip->tracking; ListBase *tracksbase = BKE_tracking_get_active_tracks(tracking); + ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(tracking); MovieTrackingTrack *track; + MovieTrackingPlaneTrack *plane_track; track = tracksbase->first; while (track) { @@ -2861,6 +2882,13 @@ static int hide_tracks_clear_exec(bContext *C, wmOperator *UNUSED(op)) track = track->next; } + for (plane_track = plane_tracks_base->first; + plane_track; + plane_track = plane_track->next) + { + plane_track->flag &= ~PLANE_TRACK_HIDDEN; + } + BKE_tracking_dopesheet_tag_update(tracking); WM_event_add_notifier(C, NC_MOVIECLIP | ND_DISPLAY, NULL); @@ -3912,7 +3940,7 @@ static MovieTrackingPlaneTrack *tracking_plane_marker_check_slide(bContext *C, c plane_track; plane_track = plane_track->next) { - if (plane_track->flag & SELECT) { + if (PLANE_TRACK_VIEW_SELECTED(plane_track)) { MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_get(plane_track, framenr); bool ok = false; int i; @@ -4191,7 +4219,7 @@ static void keyframe_set_flag(bContext *C, bool set) } for (plane_track = plane_tracks_base->first; plane_track; plane_track = plane_track->next) { - if (plane_track->flag & SELECT) { + if (PLANE_TRACK_VIEW_SELECTED(plane_track)) { if (set) { MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_ensure(plane_track, framenr); if (plane_marker->flag & PLANE_MARKER_TRACKED) { |