[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