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

Sergey Sharybin g.ulairi at gmail.com
Wed Jul 20 12:51:48 CEST 2011


Revision: 38532
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38532
Author:   nazgul
Date:     2011-07-20 10:51:47 +0000 (Wed, 20 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- Internal change: do not use maroses for checking the only
  one bit of track/marker flags.
- Do not display track name for disabled markers when
  "Show Disabled" is turned off.
- Option to lock tracks. Locked tracks can't be be moved,
  scaled, re-tracked and so.

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/movieclip.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h
    branches/soc-2011-tomato/source/blender/editors/interface/resources.c
    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/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/editors/transform/transform_conversions.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h
    branches/soc-2011-tomato/source/blender/makesdna/DNA_userdef_types.h
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_userdef.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-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py	2011-07-20 10:51:47 UTC (rev 38532)
@@ -212,16 +212,17 @@
         act_track = clip.tracking.active_track
 
         layout.prop(act_track, "name")
+        layout.prop(act_track, "locked")
 
         layout.template_track(sc, "scopes")
 
-        if act_track:
-            row = layout.row()
-            row.prop(act_track, "use_red_channel", text="Red")
-            row.prop(act_track, "use_green_channel", text="Green")
-            row.prop(act_track, "use_blue_channel", text="Blue")
+        row = layout.row()
+        row.prop(act_track, "use_red_channel", text="Red")
+        row.prop(act_track, "use_green_channel", text="Green")
+        row.prop(act_track, "use_blue_channel", text="Blue")
 
 
+
 class CLIP_PT_track_settings(bpy.types.Panel):
     bl_space_type = 'CLIP_EDITOR'
     bl_region_type = 'UI'
@@ -498,13 +499,21 @@
         op = layout.operator("clip.disable_markers", text="Disable markers")
         op.action = 'DISABLE'
 
+        layout.separator()
         layout.operator("clip.set_origin")
 
         layout.separator()
         layout.operator("clip.hide_tracks")
         layout.operator("clip.hide_tracks_clear", text="Show Tracks")
 
+        layout.separator()
+        op = layout.operator("clip.lock_tracks", text="Lock Tracks")
+        op.action = 'LOCK'
 
+        op = layout.operator("clip.lock_tracks", text="Unlock Tracks")
+        op.action = 'UNLOCK'
+
+
 class CLIP_MT_camera_presets(bpy.types.Menu):
     bl_label = "Camera Presets"
     preset_subdir = "tracking_camera"

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-07-20 10:51:47 UTC (rev 38532)
@@ -84,10 +84,9 @@
 
 struct MovieTrackingTrack *BKE_tracking_indexed_bundle(struct MovieTracking *tracking, int bundlenr);
 
-#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 TRACK_VISIBLE(track)				(((track)->flag&TRACK_HIDDEN)==0)
+#define TRACK_SELECTED(track)				(((track->flag&TRACK_HIDDEN)==0) && ((track)->flag&SELECT || (track)->pat_flag&SELECT || (track)->search_flag&SELECT))
+#define TRACK_AREA_SELECTED(track, area)	(((track->flag&TRACK_HIDDEN)==0) && ((area)==TRACK_AREA_POINT?(track)->flag&SELECT : ((area)==TRACK_AREA_PAT?(track)->pat_flag&SELECT:(track)->search_flag&SELECT)))
+
 #define MARKER_VISIBLE(sc, marker)			(((marker)->flag&MARKER_DISABLED)==0 || ((sc)->flag&SC_HIDE_DISABLED)==0)
 
 #define CLAMP_PAT_DIM		1

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c	2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c	2011-07-20 10:51:47 UTC (rev 38532)
@@ -487,10 +487,12 @@
 				IMB_freeImBuf(ibuf);
 			}
 
-			scopes->marker= marker;
-			scopes->track= track;
-			scopes->slide_scale[0]= track->pat_max[0]-track->pat_min[0];
-			scopes->slide_scale[1]= track->pat_max[1]-track->pat_min[1];
+			if((track->flag&TRACK_LOCKED)==0) {
+				scopes->marker= marker;
+				scopes->track= track;
+				scopes->slide_scale[0]= track->pat_max[0]-track->pat_min[0];
+				scopes->slide_scale[1]= track->pat_max[1]-track->pat_min[1];
+			}
 		}
 	}
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-07-20 10:51:47 UTC (rev 38532)
@@ -422,7 +422,7 @@
 
 	track= tracking->tracks.first;
 	while(track) {
-		if(TRACK_VIEW_SELECTED(track) && TRACK_VISIBLE(track)) {
+		if(TRACK_SELECTED(track) && (track->flag&TRACK_LOCKED)==0) {
 			MovieTrackingMarker *marker= BKE_tracking_get_marker(track, user->framenr);
 
 			if((marker->flag&MARKER_DISABLED)==0) {

Modified: branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h	2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h	2011-07-20 10:51:47 UTC (rev 38532)
@@ -252,7 +252,8 @@
 	TH_DIS_MARKER,
 	TH_PATH_BEFORE,
 	TH_PATH_AFTER,
-	TH_CAMERA_PATH
+	TH_CAMERA_PATH,
+	TH_LOCK_MARKER
 };
 /* XXX WARNING: previous is saved in file, so do not change order! */
 

Modified: branches/soc-2011-tomato/source/blender/editors/interface/resources.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/interface/resources.c	2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/interface/resources.c	2011-07-20 10:51:47 UTC (rev 38532)
@@ -430,6 +430,8 @@
 				cp= ts->path_after; break;
 			case TH_CAMERA_PATH:
 				cp= ts->camera_path; break;
+			case TH_LOCK_MARKER:
+				cp= ts->lock_marker; break;
 			}
 		}
 	}
@@ -824,6 +826,7 @@
 	SETCOL(btheme->tclip.act_marker, 0xff, 0xff, 0xff, 255);
 	SETCOL(btheme->tclip.sel_marker, 0xff, 0xff, 0x00, 255);
 	SETCOL(btheme->tclip.dis_marker, 0x7f, 0x00, 0x00, 255);
+	SETCOL(btheme->tclip.lock_marker, 0x7f, 0x7f, 0x7f, 255);
 	SETCOL(btheme->tclip.path_before, 0xff, 0x00, 0x00, 255);
 	SETCOL(btheme->tclip.path_after, 0x00, 0x00, 0xff, 255);
 }
@@ -1604,6 +1607,7 @@
 				SETCOL(btheme->tclip.act_marker, 0xff, 0xff, 0xff, 255);
 				SETCOL(btheme->tclip.sel_marker, 0xff, 0xff, 0x00, 255);
 				SETCOL(btheme->tclip.dis_marker, 0x7f, 0x00, 0x00, 255);
+				SETCOL(btheme->tclip.lock_marker, 0x7f, 0x7f, 0x7f, 255);
 				SETCOL(btheme->tclip.path_before, 0xff, 0x00, 0x00, 255);
 				SETCOL(btheme->tclip.path_after, 0x00, 0x00, 0xff, 255);
 			}

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-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c	2011-07-20 10:51:47 UTC (rev 38532)
@@ -260,6 +260,9 @@
 	if(type!=MCLIP_SEL_TRACK)
 		return 0;
 
+	if(track->flag&TRACK_LOCKED)
+		return 0;
+
 	return 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-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-20 10:51:47 UTC (rev 38532)
@@ -328,6 +328,11 @@
 
 	/* marker position */
 	if((track->flag&SELECT)==sel && (marker->flag&MARKER_DISABLED)==0) {
+		if(track->flag&TRACK_LOCKED) {
+			if(act) UI_ThemeColor(TH_ACT_MARKER);
+			else if(track->flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64);
+			else UI_ThemeColor(TH_LOCK_MARKER);
+		} else
 		if(track->flag&SELECT) UI_ThemeColor(color);
 		else UI_ThemeColor(TH_MARKER);
 
@@ -349,9 +354,14 @@
 
 	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(track->flag&TRACK_LOCKED) {
 			if(act) UI_ThemeColor(TH_ACT_MARKER);
-			else if(track->search_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128);
+			else if(track->pat_flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64);
+			else UI_ThemeColor(TH_LOCK_MARKER);
+		}
+		else if(marker->flag&MARKER_DISABLED) {
+			if(act) UI_ThemeColor(TH_ACT_MARKER);
+			else if(track->pat_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128);
 			else UI_ThemeColor(TH_DIS_MARKER);
 		} else {
 			if(track->pat_flag&SELECT) UI_ThemeColor(color);
@@ -370,8 +380,13 @@
 
 	/* search */
 	if((track->search_flag&SELECT)==sel) {
-		if(marker->flag&MARKER_DISABLED) {
+		if(track->flag&TRACK_LOCKED) {
 			if(act) UI_ThemeColor(TH_ACT_MARKER);
+			else if(track->search_flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64);
+			else UI_ThemeColor(TH_LOCK_MARKER);
+		}
+		else 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 {
@@ -401,9 +416,12 @@
 	float x, y, dx, dy, tdx, tdy;
 	int tiny= sc->flag&SC_SHOW_TINY_MARKER;
 
-	if(!TRACK_SELECTED(track) || (tiny && outline) || (marker->flag&MARKER_DISABLED))
+	if((tiny && outline) || (marker->flag&MARKER_DISABLED))
 		return;
 
+	if(!TRACK_SELECTED(track) || track->flag&TRACK_LOCKED)
+		return;
+
 	if(outline) {
 		glLineWidth(3.0f);
 		UI_ThemeColor(TH_MARKER_OUTLINE);
@@ -525,6 +543,10 @@
 		BLI_snprintf(str, sizeof(str), "%s", track->name);
 
 	UI_DrawString(x, y, str);
+
+	if(track->flag&TRACK_LOCKED) {
+		UI_DrawString(x, y-12.f*UI_DPI_FAC, "locked");
+	}
 }
 
 static void view2d_to_region_float(View2D *v2d, float x, float y, float *regionx, float *regiony)
@@ -569,7 +591,7 @@
 	if(sc->flag&SC_SHOW_TRACK_PATH) {
 		track= tracking->tracks.first;
 		while(track) {
-			if(TRACK_VISIBLE(track))
+			if((track->flag&TRACK_HIDDEN)==0)
 				draw_track_path(sc, clip, track);
 
 			track= track->next;
@@ -579,7 +601,7 @@
 	/* markers outline and non-selected areas */
 	track= tracking->tracks.first;
 	while(track) {
-		if(TRACK_VISIBLE(track)) {
+		if((track->flag&TRACK_HIDDEN)==0) {
 			marker= BKE_tracking_get_marker(track, framenr);
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list