[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47792] trunk/blender: Added Selected Only and Show Hidden flags to clip editor's curve view

Sergey Sharybin sergey.vfx at gmail.com
Tue Jun 12 19:11:17 CEST 2012


Revision: 47792
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47792
Author:   nazgul
Date:     2012-06-12 17:11:16 +0000 (Tue, 12 Jun 2012)
Log Message:
-----------
Added Selected Only and Show Hidden flags to clip editor's curve view

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_clip.py
    trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c
    trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c
    trunk/blender/source/blender/editors/space_clip/clip_intern.h
    trunk/blender/source/blender/editors/space_clip/clip_utils.c
    trunk/blender/source/blender/makesdna/DNA_space_types.h
    trunk/blender/source/blender/makesrna/intern/rna_space.c
    trunk/blender/source/blender/makesrna/intern/rna_tracking.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2012-06-12 17:11:00 UTC (rev 47791)
+++ trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2012-06-12 17:11:16 UTC (rev 47792)
@@ -68,7 +68,11 @@
                 layout.prop(sc, "view", text="", expand=True)
 
                 row = layout.row(align=True)
+                row.prop(sc, "show_graph_only_selected", text="")
+                row.prop(sc, "show_graph_hidden", text="")
 
+                row = layout.row(align=True)
+
                 if sc.show_filters:
                     row.prop(sc, "show_filters", icon='DISCLOSURE_TRI_DOWN',
                              text="Filters")

Modified: trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c	2012-06-12 17:11:00 UTC (rev 47791)
+++ trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c	2012-06-12 17:11:16 UTC (rev 47792)
@@ -162,17 +162,20 @@
 	userdata.sel = FALSE;
 	userdata.act_track = act_track;
 	UI_view2d_getscale(v2d, &userdata.xscale, &userdata.yscale);
-	clip_graph_tracking_values_iterate(sc, &userdata, tracking_segment_knot_cb, NULL, NULL);
+	clip_graph_tracking_values_iterate(sc, sc->flag & SC_SHOW_GRAPH_SEL_ONLY, sc->flag & SC_SHOW_GRAPH_HIDDEN,
+	                                   &userdata, tracking_segment_knot_cb, NULL, NULL);
 
 	/* draw graph lines */
 	glEnable(GL_BLEND);
-	clip_graph_tracking_values_iterate(sc, act_track, tracking_segment_point_cb,
-	                                   tracking_segment_start_cb, tracking_segment_end_cb);
+	clip_graph_tracking_values_iterate(sc, sc->flag & SC_SHOW_GRAPH_SEL_ONLY, sc->flag & SC_SHOW_GRAPH_HIDDEN,
+	                                   act_track, tracking_segment_point_cb, tracking_segment_start_cb,
+	                                   tracking_segment_end_cb);
 	glDisable(GL_BLEND);
 
 	/* selected knot handles on top of curves */
 	userdata.sel = TRUE;
-	clip_graph_tracking_values_iterate(sc, &userdata, tracking_segment_knot_cb, NULL, NULL);
+	clip_graph_tracking_values_iterate(sc, sc->flag & SC_SHOW_GRAPH_SEL_ONLY, sc->flag & SC_SHOW_GRAPH_HIDDEN,
+	                                   &userdata, tracking_segment_knot_cb, NULL, NULL);
 }
 
 static void draw_frame_curves(SpaceClip *sc)

Modified: trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c	2012-06-12 17:11:00 UTC (rev 47791)
+++ trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c	2012-06-12 17:11:16 UTC (rev 47792)
@@ -190,7 +190,9 @@
 				if (!extend) {
 					SelectUserData selectdata = {SEL_DESELECT};
 
-					clip_graph_tracking_iterate(sc, &selectdata, toggle_selection_cb);
+					clip_graph_tracking_iterate(sc, sc->flag & SC_SHOW_GRAPH_SEL_ONLY,
+					                            sc->flag & SC_SHOW_GRAPH_HIDDEN, &selectdata,
+					                            toggle_selection_cb);
 				}
 
 				if (userdata.coord == 0)
@@ -215,7 +217,8 @@
 	MouseSelectUserData userdata;
 
 	mouse_select_init_data(&userdata, co);
-	clip_graph_tracking_values_iterate(sc, &userdata, find_nearest_tracking_segment_cb,
+	clip_graph_tracking_values_iterate(sc, sc->flag & SC_SHOW_GRAPH_SEL_ONLY, sc->flag & SC_SHOW_GRAPH_HIDDEN,
+	                                   &userdata, find_nearest_tracking_segment_cb,
 	                                   NULL, find_nearest_tracking_segment_end_cb);
 
 	if (userdata.track) {
@@ -227,11 +230,16 @@
 		}
 		else if (act_track != userdata.track) {
 			SelectUserData selectdata = {SEL_DESELECT};
+			MovieTrackingObject *object = BKE_tracking_active_object(tracking);
+			ListBase *tracksbase = BKE_tracking_object_tracks(tracking, object);
 
 			tracking->act_track = userdata.track;
+			BKE_tracking_select_track(tracksbase, userdata.track, TRACK_AREA_ALL, TRUE);
 
 			/* deselect all knots on newly selected curve */
-			clip_graph_tracking_iterate(sc, &selectdata, toggle_selection_cb);
+			clip_graph_tracking_iterate(sc, sc->flag & SC_SHOW_GRAPH_SEL_ONLY,
+			                            sc->flag & SC_SHOW_GRAPH_HIDDEN, &selectdata,
+			                            toggle_selection_cb);
 		}
 
 		return TRUE;
@@ -556,7 +564,9 @@
 	userdata.max = -FLT_MAX;
 	userdata.min = FLT_MAX;
 
-	clip_graph_tracking_values_iterate(sc, &userdata, view_all_cb, NULL, NULL);
+	clip_graph_tracking_values_iterate(sc, sc->flag & SC_SHOW_GRAPH_SEL_ONLY,
+	                                   sc->flag & SC_SHOW_GRAPH_HIDDEN, &userdata,
+	                                   view_all_cb, NULL, NULL);
 
 	/* set extents of view to start/end frames */
 	v2d->cur.xmin = (float) SFRA;

Modified: trunk/blender/source/blender/editors/space_clip/clip_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_intern.h	2012-06-12 17:11:00 UTC (rev 47791)
+++ trunk/blender/source/blender/editors/space_clip/clip_intern.h	2012-06-12 17:11:16 UTC (rev 47792)
@@ -114,12 +114,12 @@
                                               void (*segment_start)(void *userdata, struct MovieTrackingTrack *track, int coord),
                                               void (*segment_end)(void *userdata));
 
-void clip_graph_tracking_values_iterate(struct SpaceClip *sc, void *userdata,
+void clip_graph_tracking_values_iterate(struct SpaceClip *sc, int selected_only, int include_hidden, void *userdata,
                                         void (*func)(void *userdata, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, int coord, int scene_framenr, float val),
                                         void (*segment_start)(void *userdata, struct MovieTrackingTrack *track, int coord),
                                         void (*segment_end)(void *userdata));
 
-void clip_graph_tracking_iterate(struct SpaceClip *sc, void *userdata,
+void clip_graph_tracking_iterate(struct SpaceClip *sc, int selected_only, int include_hidden, void *userdata,
                                  void (*func)(void *userdata, struct MovieTrackingMarker *marker));
 
 void clip_delete_track(struct bContext *C, struct MovieClip *clip, struct ListBase *tracksbase, struct MovieTrackingTrack *track);

Modified: trunk/blender/source/blender/editors/space_clip/clip_utils.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_utils.c	2012-06-12 17:11:00 UTC (rev 47791)
+++ trunk/blender/source/blender/editors/space_clip/clip_utils.c	2012-06-12 17:11:16 UTC (rev 47792)
@@ -121,7 +121,7 @@
 	}
 }
 
-void clip_graph_tracking_values_iterate(SpaceClip *sc, void *userdata,
+void clip_graph_tracking_values_iterate(SpaceClip *sc, int selected_only, int include_hidden, void *userdata,
                                         void (*func)(void *userdata, MovieTrackingTrack *track, MovieTrackingMarker *marker, int coord, int scene_framenr, float val),
                                         void (*segment_start)(void *userdata, MovieTrackingTrack *track, int coord),
                                         void (*segment_end)(void *userdata))
@@ -131,17 +131,18 @@
 	ListBase *tracksbase = BKE_tracking_get_tracks(tracking);
 	MovieTrackingTrack *track;
 
-	track = tracksbase->first;
-	while (track) {
-		if (TRACK_VIEW_SELECTED(sc, track)) {
-			clip_graph_tracking_values_iterate_track(sc, track, userdata, func, segment_start, segment_end);
-		}
+	for (track = tracksbase->first; track; track = track->next) {
+		if (!include_hidden && (track->flag & TRACK_HIDDEN) != 0)
+			continue;
 
-		track = track->next;
+		if (selected_only && !TRACK_SELECTED(track))
+			continue;
+
+		clip_graph_tracking_values_iterate_track(sc, track, userdata, func, segment_start, segment_end);
 	}
 }
 
-void clip_graph_tracking_iterate(SpaceClip *sc, void *userdata,
+void clip_graph_tracking_iterate(SpaceClip *sc, int selected_only, int include_hidden, void *userdata,
                                  void (*func)(void *userdata, MovieTrackingMarker *marker))
 {
 	MovieClip *clip = ED_space_clip(sc);
@@ -149,23 +150,24 @@
 	ListBase *tracksbase = BKE_tracking_get_tracks(tracking);
 	MovieTrackingTrack *track;
 
-	track = tracksbase->first;
-	while (track) {
-		if (TRACK_VIEW_SELECTED(sc, track)) {
-			int i;
+	for (track = tracksbase->first; track; track = track->next) {
+		int i;
 
-			for (i = 0; i < track->markersnr; i++) {
-				MovieTrackingMarker *marker = &track->markers[i];
+		if (!include_hidden && (track->flag & TRACK_HIDDEN) != 0)
+			continue;
 
-				if (marker->flag & MARKER_DISABLED)
-					continue;
+		if (selected_only && !TRACK_SELECTED(track))
+			continue;
 
-				if (func)
-					func(userdata, marker);
-			}
+		for (i = 0; i < track->markersnr; i++) {
+			MovieTrackingMarker *marker = &track->markers[i];
+
+			if (marker->flag & MARKER_DISABLED)
+				continue;
+
+			if (func)
+				func(userdata, marker);
 		}
-
-		track = track->next;
 	}
 }
 

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-06-12 17:11:00 UTC (rev 47791)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-06-12 17:11:16 UTC (rev 47792)
@@ -1037,6 +1037,8 @@
 /*	SC_SHOW_PYRAMID_LEVELS = (1 << 16), */	/* UNUSED */
 	SC_LOCK_TIMECURSOR     = (1 << 17),
 	SC_SHOW_SECONDS        = (1 << 18),
+	SC_SHOW_GRAPH_SEL_ONLY = (1 << 19),
+	SC_SHOW_GRAPH_HIDDEN   = (1 << 20),
 } eSpaceClip_Flag;
 
 /* SpaceClip->mode */

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-06-12 17:11:00 UTC (rev 47791)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-06-12 17:11:16 UTC (rev 47792)
@@ -3168,6 +3168,20 @@
 	                         "for the selected tracks");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
 
+	/* show_only_selected */

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list