[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38271] branches/soc-2011-tomato: Camera tracking integration

Sergey Sharybin g.ulairi at gmail.com
Sat Jul 9 21:51:26 CEST 2011


Revision: 38271
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38271
Author:   nazgul
Date:     2011-07-09 19:51:23 +0000 (Sat, 09 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- Implemented hide/show track functionality.
- Small re-exposing Marker menu into UI.
  Now it's called "Track". Added new operators there.
- Set reconstructed clip as active to scene.

Modified Paths:
--------------
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h
    branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h

Modified: branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py	2011-07-09 19:46:41 UTC (rev 38270)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py	2011-07-09 19:51:23 UTC (rev 38271)
@@ -76,7 +76,7 @@
 
             if clip:
                 sub.menu("CLIP_MT_select")
-                sub.menu("CLIP_MT_edit")
+                sub.menu("CLIP_MT_track")
 
         layout.template_ID(sc, "clip")
 
@@ -338,30 +338,66 @@
         layout.operator("clip.open")
 
 
-class CLIP_MT_edit(bpy.types.Menu):
-    bl_label = "Edit"
+class CLIP_MT_track(bpy.types.Menu):
+    bl_label = "Track"
 
     def draw(self, context):
         layout = self.layout
 
-        sc = context.space_data
+        layout.operator("clip.set_origin")
 
+        layout.separator()
+        layout.operator("clip.clear_reconstruction")
+        layout.operator("clip.solve_camera")
+
+        layout.separator()
+        layout.operator("clip.clear_track_path", text="Clear Remained Path").action = 'REMAINED'
+        layout.operator("clip.clear_track_path", text="Clear Path Up To").action = 'UPTO'
+        layout.operator("clip.clear_track_path", text="Clear Track Path").action = 'ALL'
+
+        layout.separator()
+        op = layout.operator("clip.track_markers", text="Track Frame Backwards")
+        op.backwards = True
+        op = layout.operator("clip.track_markers", text="Track Backwards")
+        op.backwards = True
+        op.sequence = True
+        op = layout.operator("clip.track_markers", text="Track Forwards")
+        op.sequence = True
+        layout.operator("clip.track_markers", text="Track Frame Forwards")
+
+        layout.separator()
         layout.operator("clip.delete_track")
         layout.operator("clip.delete_marker")
-        layout.menu("CLIP_MT_marker")
 
+        layout.separator()
+        layout.operator("clip.add_marker_move")
 
-class CLIP_MT_marker(bpy.types.Menu):
-    bl_label = "Marker"
+        layout.separator()
+        layout.menu("CLIP_MT_track_visibility")
+        layout.menu("CLIP_MT_track_transform")
 
+
+class CLIP_MT_track_visibility(bpy.types.Menu):
+    bl_label = "Show/Hide"
+
     def draw(self, context):
         layout = self.layout
 
-        sc = context.space_data
+        layout.operator("clip.hide_tracks_clear", text="Show Hidden")
+        layout.operator("clip.hide_tracks", text="Hide Selected")
+        layout.operator("clip.hide_tracks", text="Hide Unselected").unselected = True
 
-        layout.operator("clip.add_marker_move")
 
+class CLIP_MT_track_transform(bpy.types.Menu):
+    bl_label = "Transform"
 
+    def draw(self, context):
+        layout = self.layout
+
+        layout.operator("transform.translate")
+        layout.operator("transform.resize")
+
+
 class CLIP_MT_select(bpy.types.Menu):
     bl_label = "Select"
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-07-09 19:46:41 UTC (rev 38270)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-07-09 19:51:23 UTC (rev 38271)
@@ -78,6 +78,7 @@
 
 #define TRACK_SELECTED(track) ((track)->flag&SELECT || (track)->pat_flag&SELECT || (track)->search_flag&SELECT)
 #define TRACK_AREA_SELECTED(track, area) ((area)==TRACK_AREA_POINT?(track)->flag&SELECT : ((area)==TRACK_AREA_PAT?(track)->pat_flag&SELECT:(track)->search_flag&SELECT))
+#define TRACK_VIEW_SELECTED(track) ((track->flag&TRACK_HIDDEN)==0 && TRACK_SELECTED(track))
 
 #define CLAMP_PAT_DIM		1
 #define CLAMP_PAT_POS		2

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-07-09 19:46:41 UTC (rev 38270)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-07-09 19:51:23 UTC (rev 38271)
@@ -386,7 +386,7 @@
 
 	track= tracking->tracks.first;
 	while(track) {
-		if(TRACK_SELECTED(track)) {
+		if(TRACK_VIEW_SELECTED(track)) {
 			MovieTrackingTrack *new_track= BKE_tracking_copy_track(track);
 
 			BLI_addtail(&context->tracks, new_track);

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-09 19:46:41 UTC (rev 38270)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-09 19:51:23 UTC (rev 38271)
@@ -507,7 +507,9 @@
 	if(sc->flag&SC_SHOW_MARKER_PATH) {
 		track= clip->tracking.tracks.first;
 		while(track) {
-			draw_track_path(sc, clip, track);
+			if((track->flag&TRACK_HIDDEN)==0)
+				draw_track_path(sc, clip, track);
+
 			track= track->next;
 		}
 	}
@@ -515,11 +517,13 @@
 	/* markers outline and non-selected areas */
 	track= clip->tracking.tracks.first;
 	while(track) {
-		marker= BKE_tracking_get_marker(track, sc->user.framenr);
+		if((track->flag&TRACK_HIDDEN)==0) {
+			marker= BKE_tracking_get_marker(track, sc->user.framenr);
 
-		draw_marker_outline(sc, track, marker);
-		draw_marker_slide_zones(sc, track, marker, 1, 0, width, height);
-		draw_marker_areas(sc, track, marker, 0, 0);
+			draw_marker_outline(sc, track, marker);
+			draw_marker_slide_zones(sc, track, marker, 1, 0, width, height);
+			draw_marker_areas(sc, track, marker, 0, 0);
+		}
 
 		track= track->next;
 	}
@@ -528,12 +532,14 @@
 	   non-selected areas */
 	track= clip->tracking.tracks.first;
 	while(track) {
-		int act= sel_type==MCLIP_SEL_TRACK && sel==track;
+		if((track->flag&TRACK_HIDDEN)==0) {
+			int act= sel_type==MCLIP_SEL_TRACK && sel==track;
 
-		if(!act) {
-			marker= BKE_tracking_get_marker(track, sc->user.framenr);
-			draw_marker_areas(sc, track, marker, 0, 1);
-			draw_marker_slide_zones(sc, track, marker, 0, 0, width, height);
+			if(!act) {
+				marker= BKE_tracking_get_marker(track, sc->user.framenr);
+				draw_marker_areas(sc, track, marker, 0, 1);
+				draw_marker_slide_zones(sc, track, marker, 0, 0, width, height);
+			}
 		}
 
 		track= track->next;
@@ -541,9 +547,11 @@
 
 	/* active marker would be displayed on top of everything else */
 	if(sel_type==MCLIP_SEL_TRACK) {
-		marker= BKE_tracking_get_marker(sel, sc->user.framenr);
-		draw_marker_areas(sc, sel, marker, 1, 1);
-		draw_marker_slide_zones(sc, sel, marker, 0, 1, width, height);
+		if((((MovieTrackingTrack *)sel)->flag&TRACK_HIDDEN)==0) {
+			marker= BKE_tracking_get_marker(sel, sc->user.framenr);
+			draw_marker_areas(sc, sel, marker, 1, 1);
+			draw_marker_slide_zones(sc, sel, marker, 0, 1, width, height);
+		}
 	}
 
 	glPopMatrix();

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h	2011-07-09 19:46:41 UTC (rev 38270)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h	2011-07-09 19:51:23 UTC (rev 38271)
@@ -74,6 +74,8 @@
 void CLIP_OT_clear_track_path(struct wmOperatorType *ot);
 
 void CLIP_OT_disable_markers(struct wmOperatorType *ot);
+void CLIP_OT_hide_tracks(struct wmOperatorType *ot);
+void CLIP_OT_hide_tracks_clear(struct wmOperatorType *ot);
 
 void CLIP_OT_set_origin(struct wmOperatorType *ot);
 

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c	2011-07-09 19:46:41 UTC (rev 38270)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c	2011-07-09 19:51:23 UTC (rev 38271)
@@ -213,6 +213,8 @@
 	WM_operatortype_append(CLIP_OT_clear_reconstruction);
 
 	WM_operatortype_append(CLIP_OT_disable_markers);
+	WM_operatortype_append(CLIP_OT_hide_tracks);
+	WM_operatortype_append(CLIP_OT_hide_tracks_clear);
 	WM_operatortype_append(CLIP_OT_set_origin);
 
 	WM_operatortype_append(CLIP_OT_clear_track_path);
@@ -296,6 +298,11 @@
 
 	WM_keymap_add_item(keymap, "CLIP_OT_slide_marker", LEFTMOUSE, KM_PRESS, 0, 0);
 
+	WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, 0, 0);
+	kmi= WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, KM_SHIFT, 0);
+	RNA_boolean_set(kmi->ptr, "unselected", 1);
+	WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks_clear", HKEY, KM_PRESS, KM_ALT, 0);
+
 	transform_keymap_for_space(keyconf, keymap, SPACE_CLIP);
 }
 

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-07-09 19:46:41 UTC (rev 38270)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-07-09 19:51:23 UTC (rev 38271)
@@ -241,7 +241,7 @@
 	while(track) {
 		next= track->next;
 
-		if(TRACK_SELECTED(track)) {
+		if(TRACK_VIEW_SELECTED(track)) {
 			BKE_tracking_free_track(track);
 			BLI_freelinkN(&clip->tracking.tracks, track);
 		}
@@ -286,7 +286,7 @@
 	while(track) {
 		next= track->next;
 
-		if(TRACK_SELECTED(track)) {
+		if(TRACK_VIEW_SELECTED(track)) {
 			MovieTrackingMarker *marker= BKE_tracking_exact_marker(track, framenr);
 
 			if(marker) {
@@ -519,12 +519,14 @@
 	/* do actual selection */
 	track= clip->tracking.tracks.first;
 	while(track) {
-		MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr);
+		if((track->flag&TRACK_HIDDEN)==0) {
+			MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr);
 
-		if(BLI_in_rctf(&rectf, marker->pos[0], marker->pos[1])) {
-			BKE_tracking_track_flag(track, TRACK_AREA_ALL, SELECT, mode!=GESTURE_MODAL_SELECT);
+			if(BLI_in_rctf(&rectf, marker->pos[0], marker->pos[1])) {
+				BKE_tracking_track_flag(track, TRACK_AREA_ALL, SELECT, mode!=GESTURE_MODAL_SELECT);
 
-			change= 1;
+				change= 1;
+			}
 		}
 
 		track= track->next;
@@ -602,12 +604,14 @@
 	/* do selection */
 	track= clip->tracking.tracks.first;
 	while(track) {
-		MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr);
+		if((track->flag&TRACK_HIDDEN)==0) {

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list