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

Sergey Sharybin g.ulairi at gmail.com
Tue Jul 12 13:46:47 CEST 2011


Revision: 38326
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38326
Author:   nazgul
Date:     2011-07-12 11:46:46 +0000 (Tue, 12 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- Reduced size of widget for camera focal length units.
  Also changed labels to mm/px. Now it's much easier to read
  values and titles here.
- Reordered settings in "Display" panel. Hopefully it's
  now easier to read options here even when N-panel
  isn't large enough.
- Fixed bug with "disappearing" labels from "Active marker" panel.
- If search areas are hidden and marker is disabled,
  make pattern area red rather than displaying nothing for
  this marker.
- Internal change: "show marker path" became "show track path".
- Lock shape of pattern to square by default. Control unlocks
  this shape.
- Hitting escape when sliding cancels changes and stops sliding.
- Search areas are hidden by default now. No big benefit of
  looking at them now after changing default settings to
  2D tracker and pattern/search size.
- Both of Toolshelf and Properties panels are now visible
  by default.
- Move keyframes from Properties panel to Toolshelf.
  It is a key thing which makes reconstruction correct and
  this options were too hidden and not so convenient to
  use.

Modified Paths:
--------------
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
    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_space_types.h
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_space.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c

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-12 11:27:35 UTC (rev 38325)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py	2011-07-12 11:46:46 UTC (rev 38326)
@@ -89,6 +89,7 @@
     def draw(self, context):
         layout = self.layout
         clip = context.space_data.clip
+        settings = clip.tracking.settings
 
         if clip:
             col = layout.column(align=True)
@@ -131,6 +132,11 @@
 
             col = layout.column(align=True)
             col.label(text="Reconstruction:")
+
+            col.prop(settings, "keyframe1")
+            col.prop(settings, "keyframe2")
+
+            col = layout.column(align=True)
             col.operator("clip.solve_camera")
             col.operator("clip.clear_reconstruction")
 
@@ -196,10 +202,6 @@
         row.active = settings.use_frames_limit
         row.prop(settings, "frames_limit")
 
-        layout.label(text="Reconstruction:")
-        col = layout.column(align=True)
-        col.prop(settings, "keyframe1")
-        col.prop(settings, "keyframe2")
 
 
 class CLIP_PT_tracking_camera(bpy.types.Panel):
@@ -222,9 +224,10 @@
 
         layout.prop(clip.tracking.camera, "sensor_width")
 
-        row = layout.row()
-        row.prop(clip.tracking.camera, "focal_length")
-        row.prop(clip.tracking.camera, "units", text="")
+        row = layout.row(align=True)
+        sub = row.split(percentage=0.65)
+        sub.prop(clip.tracking.camera, "focal_length")
+        sub.prop(clip.tracking.camera, "units", text="")
 
         layout.label(text="Principal Point")
         layout.prop(clip.tracking.camera, "principal", text="")
@@ -245,17 +248,19 @@
         layout = self.layout
         sc = context.space_data
 
-        layout.prop(sc, "show_marker_pattern")
-        layout.prop(sc, "show_marker_search")
-        layout.prop(sc, "lock_selection")
-        layout.prop(sc, "show_marker_path")
+        row = layout.row()
+        row.prop(sc, "show_marker_pattern", text="Pattern")
+        row.prop(sc, "show_marker_search", text="Search")
 
         row = layout.row()
-        row.active = sc.show_marker_path
-        row.prop(sc, "path_length")
+        row.prop(sc, "show_track_path", text="Path")
+        row.active = sc.show_track_path
+        row.prop(sc, "path_length", text="Length")
 
-        layout.prop(sc, "show_tiny_markers")
-        layout.prop(sc, "show_bundles")
+        layout.prop(sc, "show_tiny_markers", text="Tiny Markers")
+        layout.prop(sc, "show_bundles", text="Bundles")
+
+        layout.prop(sc, "lock_selection")
         layout.prop(sc, "use_mute_footage")
 
 

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c	2011-07-12 11:27:35 UTC (rev 38325)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c	2011-07-12 11:46:46 UTC (rev 38326)
@@ -122,13 +122,13 @@
 	block= uiLayoutAbsoluteBlock(col);
 	uiBlockBeginAlign(block);
 
-	uiDefBut(block, LABEL, 0, "Position:", 0, 171, 145, 19, NULL, 0, 0, 0, 0, "");
+	uiDefBut(block, LABEL, 0, "Position:", 0, 171, 300, 19, NULL, 0, 0, 0, 0, "");
 	uiDefButF(block, NUM, B_MARKER_POS, "X:", 10, 152, 145, 19, &sc->marker_pos[0],
 		-10*width, 10.0*width, step, digits, "X-position of marker at frame in screen coordinates.");
 	uiDefButF(block, NUM, B_MARKER_POS, "Y:", 165, 152, 145, 19, &sc->marker_pos[1],
 		-10*height, 10.0*height, step, digits, "Y-position of marker at frame in screen coordinates.");
 
-	uiDefBut(block, LABEL, 0, "Pattern Area:", 0, 133, 145, 19, NULL, 0, 0, 0, 0, "");
+	uiDefBut(block, LABEL, 0, "Pattern Area:", 0, 133, 300, 19, NULL, 0, 0, 0, 0, "");
 	uiDefButF(block, NUM, B_MARKER_PAT_POS, "X:", 10, 114, 145, 19, &sc->track_pat_pos[0],
 		-width, width, step, digits, "X-position of pattern at frame in screen coordinates relative to marker's position.");
 	uiDefButF(block, NUM, B_MARKER_PAT_POS, "Y:", 165, 114, 145, 19, &sc->track_pat_pos[1],
@@ -138,7 +138,7 @@
 	uiDefButF(block, NUM, B_MARKER_PAT_DIM, "Height:", 10, 76, 300, 19, &sc->track_pat[1], 3.0f,
 		10.0*height, step, digits, "Height of marker's pattern in screen soordinates.");
 
-	uiDefBut(block, LABEL, 0, "Search Area:", 0, 57, 145, 19, NULL, 0, 0, 0, 0, "");
+	uiDefBut(block, LABEL, 0, "Search Area:", 0, 57, 300, 19, NULL, 0, 0, 0, 0, "");
 	uiDefButF(block, NUM, B_MARKER_SEARCH_POS, "X:", 10, 38, 145, 19, &sc->track_search_pos[0],
 		-width, width, step, digits, "X-position of search at frame relative to marker's position");
 	uiDefButF(block, NUM, B_MARKER_SEARCH_POS, "Y:", 165, 38, 145, 19, &sc->track_search_pos[1],

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-12 11:27:35 UTC (rev 38325)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-12 11:46:46 UTC (rev 38326)
@@ -276,6 +276,7 @@
 static void draw_marker_outline(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker)
 {
 	int tiny= sc->flag&SC_SHOW_TINY_MARKER;
+	int show_pat= 0;
 
 	UI_ThemeColor(TH_MARKER_OUTLINE);
 
@@ -294,7 +295,8 @@
 
 	if(!tiny) glLineWidth(3.0f);
 
-	if(sc->flag&SC_SHOW_MARKER_PATTERN && (marker->flag&MARKER_DISABLED)==0) {
+	show_pat= ((marker->flag&MARKER_DISABLED)==0 || (sc->flag&SC_SHOW_MARKER_SEARCH)==0);
+	if(sc->flag&SC_SHOW_MARKER_PATTERN && show_pat) {
 		glBegin(GL_LINE_LOOP);
 			glVertex2f(track->pat_min[0], track->pat_min[1]);
 			glVertex2f(track->pat_max[0], track->pat_min[1]);
@@ -320,6 +322,7 @@
 {
 	int color= act?TH_ACT_MARKER:TH_SEL_MARKER;
 	int tiny= sc->flag&SC_SHOW_TINY_MARKER;
+	int show_pat= 0;
 
 	/* marker position */
 	if((track->flag&SELECT)==sel && (marker->flag&MARKER_DISABLED)==0) {
@@ -342,9 +345,16 @@
 		glEnable(GL_LINE_STIPPLE);
 	}
 
-	if((track->pat_flag&SELECT)==sel && (marker->flag&MARKER_DISABLED)==0) {
-		if(track->pat_flag&SELECT) UI_ThemeColor(color);
-		else UI_ThemeColor(TH_MARKER);
+	show_pat= ((marker->flag&MARKER_DISABLED)==0 || (sc->flag&SC_SHOW_MARKER_SEARCH)==0);
+	if((track->pat_flag&SELECT)==sel && show_pat) {
+		if(marker->flag&MARKER_DISABLED) {
+			if(act) UI_ThemeColor(TH_ACT_MARKER);
+			else if(track->search_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128);
+			else UI_ThemeColor(TH_DIS_MARKER);
+		} else {
+			if(track->pat_flag&SELECT) UI_ThemeColor(color);
+			else UI_ThemeColor(TH_MARKER);
+		}
 
 		if(sc->flag&SC_SHOW_MARKER_PATTERN) {
 			glBegin(GL_LINE_LOOP);
@@ -362,7 +372,8 @@
 			if(act) UI_ThemeColor(TH_ACT_MARKER);
 			else if(track->search_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128);
 			else UI_ThemeColor(TH_DIS_MARKER);
-		} else {if(track->search_flag&SELECT) UI_ThemeColor(color);
+		} else {
+			if(track->search_flag&SELECT) UI_ThemeColor(color);
 			else UI_ThemeColor(TH_MARKER);
 		}
 
@@ -514,7 +525,7 @@
 
 	BKE_movieclip_last_selection(clip, &sel_type, &sel);
 
-	if(sc->flag&SC_SHOW_MARKER_PATH) {
+	if(sc->flag&SC_SHOW_TRACK_PATH) {
 		track= tracking->tracks.first;
 		while(track) {
 			if((track->flag&TRACK_HIDDEN)==0)

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-12 11:27:35 UTC (rev 38325)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c	2011-07-12 11:46:46 UTC (rev 38326)
@@ -77,7 +77,7 @@
 
 	sc= MEM_callocN(sizeof(SpaceClip), "initclip");
 	sc->spacetype= SPACE_CLIP;
-	sc->flag= SC_SHOW_MARKER_PATTERN|SC_SHOW_MARKER_SEARCH|SC_SHOW_MARKER_PATH;
+	sc->flag= SC_SHOW_MARKER_PATTERN|SC_SHOW_TRACK_PATH;
 	sc->zoom= 1.0f;
 	sc->path_length= 20;
 
@@ -94,7 +94,6 @@
 	BLI_addtail(&sc->regionbase, ar);
 	ar->regiontype= RGN_TYPE_TOOLS;
 	ar->alignment= RGN_ALIGN_LEFT;
-	ar->flag= RGN_FLAG_HIDDEN;
 
 	/* properties view */
 	ar= MEM_callocN(sizeof(ARegion), "properties for logic");
@@ -102,7 +101,6 @@
 	BLI_addtail(&sc->regionbase, ar);
 	ar->regiontype= RGN_TYPE_UI;
 	ar->alignment= RGN_ALIGN_RIGHT;
-	ar->flag= RGN_FLAG_HIDDEN;
 
 	/* main area */
 	ar= MEM_callocN(sizeof(ARegion), "main area for 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-12 11:27:35 UTC (rev 38325)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-07-12 11:46:46 UTC (rev 38326)
@@ -1275,7 +1275,7 @@
 	float *min, *max, *pos;
 	float smin[2], smax[2], spos[2];
 
-	int keep_square, accurate;
+	int lock, accurate;
 } SlideMarkerData;
 
 static SlideMarkerData *create_slide_marker_data(MovieTrackingTrack *track, MovieTrackingMarker *marker, wmEvent *event, int area, int width, int height)
@@ -1307,6 +1307,8 @@
 	data->width= width;
 	data->height= height;
 
+	data->lock= 1;
+
 	return data;
 }
 
@@ -1402,7 +1404,7 @@
 		case RIGHTSHIFTKEY:
 			if(data->area != TRACK_AREA_POINT)
 				if(ELEM(event->type, LEFTCTRLKEY, RIGHTCTRLKEY))
-					data->keep_square= event->val==KM_PRESS;
+					data->lock= event->val==KM_RELEASE;
 
 			if(ELEM(event->type, LEFTSHIFTKEY, RIGHTSHIFTKEY))
 				data->accurate= event->val==KM_PRESS;
@@ -1431,7 +1433,7 @@
 				data->min[1]= data->smin[1]+dy;
 				data->max[1]= data->smax[1]-dy;
 
-				if(data->keep_square) {
+				if(data->lock) {
 					float h= (data->max[0]-data->min[0])*data->width/data->height;
 
 					data->min[1]= data->spos[1]-h/2;
@@ -1455,6 +1457,23 @@
 			}
 
 			break;
+
+		case ESCKEY:
+			/* cancel sliding */
+			if(data->area == TRACK_AREA_POINT) {
+				data->pos[0]= data->spos[0];
+				data->pos[1]= data->spos[1];
+			} else {
+				data->min[0]= data->smin[0];
+				data->max[0]= data->smax[0];
+
+				data->min[1]= data->smin[1];
+				data->max[1]= data->smax[1];
+			}
+
+			WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, NULL);
+
+			return OPERATOR_CANCELLED;
 	}
 
 	return OPERATOR_PASS_THROUGH;


@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list