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

Sergey Sharybin g.ulairi at gmail.com
Tue Aug 16 16:58:24 CEST 2011


Revision: 39452
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39452
Author:   nazgul
Date:     2011-08-16 14:58:24 +0000 (Tue, 16 Aug 2011)
Log Message:
-----------
Camera tracking integration
===========================

Code clean-up:
- Remove unused args from template_movieclip.
- Remove C-defined "Marker" panel.
- Move all properties from old "Marker" panel to template_marker
  template. This properties would be displayed if compact is set to False.

Modified Paths:
--------------
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
    branches/soc-2011-tomato/source/blender/editors/include/UI_interface.h
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_ui_api.c
    branches/soc-2011-tomato/source/blenderplayer/bad_level_call_stubs/stubs.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-08-16 14:43:04 UTC (rev 39451)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py	2011-08-16 14:58:24 UTC (rev 39452)
@@ -357,7 +357,7 @@
         sc = context.space_data
         clip = sc.clip
 
-        return sc.mode == 'TRACKING' and clip and clip.tracking.active_track
+        return sc.mode == 'TRACKING' and clip
 
     def draw(self, context):
         layout = self.layout
@@ -365,14 +365,17 @@
         clip = context.space_data.clip
         act_track = clip.tracking.active_track
 
-        marker = act_track.get_marker(sc.clip_user.current_frame)
+        if not act_track:
+            layout.active = False
+            layout.label(text="No active track")
+            return
 
         row = layout.row()
         row.prop(act_track, "name", text="")
 
         sub = row.row(align=True)
 
-        sub.template_marker(clip.tracking, "active_track", sc.clip_user)
+        sub.template_marker(sc, "clip", sc.clip_user, act_track, True)
 
         icon = 'LOCKED' if act_track.locked else 'UNLOCKED'
         sub.prop(act_track, "locked", text="", icon=icon)
@@ -566,6 +569,31 @@
         row.prop(stab, "influence_scale")
 
 
+class CLIP_PT_marker(Panel):
+    bl_space_type = 'CLIP_EDITOR'
+    bl_region_type = 'UI'
+    bl_label = "Marker"
+
+    @classmethod
+    def poll(cls, context):
+        sc = context.space_data
+        clip = sc.clip
+
+        return sc.mode == 'TRACKING' and clip
+
+    def draw(self, context):
+        layout = self.layout
+        sc = context.space_data
+        clip = context.space_data.clip
+        act_track = clip.tracking.active_track
+
+        if act_track:
+            layout.template_marker(sc, "clip", sc.clip_user, act_track, False)
+        else:
+            layout.active = False
+            layout.label(text="No active track")
+
+
 class CLIP_PT_proxy(Panel):
     bl_space_type = 'CLIP_EDITOR'
     bl_region_type = 'UI'

Modified: branches/soc-2011-tomato/source/blender/editors/include/UI_interface.h
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/include/UI_interface.h	2011-08-16 14:43:04 UTC (rev 39451)
+++ branches/soc-2011-tomato/source/blender/editors/include/UI_interface.h	2011-08-16 14:58:24 UTC (rev 39452)
@@ -732,9 +732,9 @@
 
 void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *activeptr, const char *activeprop, int rows, int maxrows, int type);
 
-void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *userptr, int compact);
+void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, int compact);
 void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname);
-void uiTemplateMarker(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, PointerRNA *userptr);
+void uiTemplateMarker(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, PointerRNA *userptr, PointerRNA *trackptr, int cmpact);
 
 /* items */
 void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname);

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-08-16 14:43:04 UTC (rev 39451)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c	2011-08-16 14:58:24 UTC (rev 39452)
@@ -63,253 +63,12 @@
 
 #include "clip_intern.h"	// own include
 
-#define B_MARKER_POS			3
-#define B_MARKER_OFFSET			4
-#define B_MARKER_PAT_DIM		5
-#define B_MARKER_SEARCH_POS		6
-#define B_MARKER_SEARCH_DIM		7
-#define B_MARKER_FLAG			8
-
-static void to_pixel_space(float r[2], float a[2], int width, int height)
-{
-	copy_v2_v2(r, a);
-	r[0]*= width;
-	r[1]*= height;
-}
-
-static void trackingMarker_buttons(const bContext *C, uiLayout *layout)
-{
-	SpaceClip *sc= CTX_wm_space_clip(C);
-	MovieClip *clip= ED_space_clip(sc);
-	int width, height, step, digits, type;
-	MovieTrackingTrack *track;
-	MovieTrackingMarker *marker;
-	float pat_dim[2], pat_pos[2], search_dim[2], search_pos[2];
-	uiBlock *block;
-	uiLayout *col;
-
-	ED_space_clip_size(sc, &width, &height);
-	BKE_movieclip_last_selection(clip, &type, (void**)&track);
-
-	if(track->flag&TRACK_LOCKED) {
-		uiLayoutSetActive(layout, 0);
-		block= uiLayoutAbsoluteBlock(layout);
-		uiDefBut(block, LABEL, 0, "Track is locked", 0, 0, 300, 19, NULL, 0, 0, 0, 0, "");
-		return;
-	}
-
-	step= 100;
-	digits= 2;
-
-	marker= BKE_tracking_get_marker(track, sc->user.framenr);
-
-	sub_v2_v2v2(pat_dim, track->pat_max, track->pat_min);
-	sub_v2_v2v2(search_dim, track->search_max, track->search_min);
-
-	add_v2_v2v2(search_pos, track->search_max, track->search_min);
-	mul_v2_fl(search_pos, 0.5);
-
-	add_v2_v2v2(pat_pos, track->pat_max, track->pat_min);
-	mul_v2_fl(pat_pos, 0.5);
-
-	to_pixel_space(sc->marker_pos, marker->pos, width, height);
-	to_pixel_space(sc->track_pat, pat_dim, width, height);
-	to_pixel_space(sc->track_search, search_dim, width, height);
-	to_pixel_space(sc->track_search_pos, search_pos, width, height);
-	to_pixel_space(sc->track_offset, track->offset, width, height);
-
-	sc->marker_flag= marker->flag;
-
-	block= uiLayoutAbsoluteBlock(layout);
-
-	uiDefButBitI(block, OPTIONN, MARKER_DISABLED, B_MARKER_FLAG,  "Enabled", 10, 190, 145, 19, &sc->marker_flag,
-		0, 0, 0, 0, "Marker is disabled for current frame.");
-
-	col= uiLayoutColumn(layout, 1);
-	uiLayoutSetActive(col, (sc->marker_flag&MARKER_DISABLED)==0);
-
-	block= uiLayoutAbsoluteBlock(col);
-	uiBlockBeginAlign(block);
-
-	uiDefBut(block, LABEL, 0, "Position:", 0, 190, 300, 19, NULL, 0, 0, 0, 0, "");
-	uiDefButF(block, NUM, B_MARKER_POS, "X:", 10, 171, 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, 171, 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, "Offset:", 0, 152, 300, 19, NULL, 0, 0, 0, 0, "");
-	uiDefButF(block, NUM, B_MARKER_OFFSET, "X:", 10, 133, 145, 19, &sc->track_offset[0],
-		-10*width, 10.0*width, step, digits, "X-offset to parenting point.");
-	uiDefButF(block, NUM, B_MARKER_OFFSET, "Y:", 165, 133, 145, 19, &sc->track_offset[1],
-		-10*height, 10.0*height, step, digits, "Y-offset to parenting point.");
-
-	uiDefBut(block, LABEL, 0, "Pattern Area:", 0, 114, 300, 19, NULL, 0, 0, 0, 0, "");
-	uiDefButF(block, NUM, B_MARKER_PAT_DIM, "Width:", 10, 95, 300, 19, &sc->track_pat[0], 3.0f,
-		10.0*width, step, digits, "Width of marker's pattern in screen soordinates.");
-	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, 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],
-		-height, height, step, digits, "X-position of search at frame relative to marker's position");
-	uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, "Width:", 10, 19, 300, 19, &sc->track_search[0], 3.0f,
-		10.0*width, step, digits, "Width of marker's search in screen soordinates.");
-	uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, "Height:", 10, 0, 300, 19, &sc->track_search[1], 3.0f,
-		10.0*height, step, digits, "Height of marker's search in screen soordinates.");
-
-	uiBlockEndAlign(block);
-}
-
-static void do_tracking_marker(bContext *C, void *UNUSED(arg), int event)
-{
-	SpaceClip *sc= CTX_wm_space_clip(C);
-	MovieClip *clip= ED_space_clip(sc);
-	MovieTrackingTrack *track;
-	MovieTrackingMarker *marker;
-	int width, height, type, ok= 0;
-
-	ED_space_clip_size(sc, &width, &height);
-
-	BKE_movieclip_last_selection(clip, &type, (void**)&track);
-
-	marker= BKE_tracking_ensure_marker(track, sc->user.framenr);
-
-	if(event==B_MARKER_POS) {
-		marker->pos[0]= sc->marker_pos[0]/width;
-		marker->pos[1]= sc->marker_pos[1]/height;
-
-		/* to update position of "parented" objects */
-		DAG_id_tag_update(&clip->id, 0);
-		WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, NULL);
-
-		ok= 1;
-	}
-	else if(event==B_MARKER_PAT_DIM) {
-		float dim[2], pat_dim[2];
-
-		sub_v2_v2v2(pat_dim, track->pat_max, track->pat_min);
-
-		dim[0]= sc->track_pat[0]/width;
-		dim[1]= sc->track_pat[1]/height;
-
-		sub_v2_v2(dim, pat_dim);
-		mul_v2_fl(dim, 0.5f);
-
-		track->pat_min[0]-= dim[0];
-		track->pat_min[1]-= dim[1];
-
-		track->pat_max[0]+= dim[0];
-		track->pat_max[1]+= dim[1];
-
-		BKE_tracking_clamp_track(track, CLAMP_PAT_DIM);
-
-		ok= 1;
-	}
-	else if(event==B_MARKER_SEARCH_POS) {
-		float delta[2], side[2];
-
-		sub_v2_v2v2(side, track->search_max, track->search_min);
-		mul_v2_fl(side, 0.5f);
-
-		delta[0]= sc->track_search_pos[0]/width;
-		delta[1]= sc->track_search_pos[1]/height;
-
-		sub_v2_v2v2(track->search_min, delta, side);
-		add_v2_v2v2(track->search_max, delta, side);
-
-		BKE_tracking_clamp_track(track, CLAMP_SEARCH_POS);
-
-		ok= 1;
-	}
-	else if(event==B_MARKER_SEARCH_DIM) {
-		float dim[2], search_dim[2];
-
-		sub_v2_v2v2(search_dim, track->search_max, track->search_min);
-
-		dim[0]= sc->track_search[0]/width;
-		dim[1]= sc->track_search[1]/height;
-
-		sub_v2_v2(dim, search_dim);
-		mul_v2_fl(dim, 0.5f);
-
-		track->search_min[0]-= dim[0];
-		track->search_min[1]-= dim[1];
-
-		track->search_max[0]+= dim[0];
-		track->search_max[1]+= dim[1];
-
-		BKE_tracking_clamp_track(track, CLAMP_SEARCH_DIM);
-
-		ok= 1;
-	} else if(event==B_MARKER_FLAG) {
-		marker->flag= sc->marker_flag;
-
-		ok= 1;
-	} else if(event==B_MARKER_OFFSET) {
-		track->offset[0]= sc->track_offset[0]/width;
-		track->offset[1]= sc->track_offset[1]/height;
-
-		/* to update position of "parented" objects */

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list