[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