[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41195] branches/soc-2011-tomato: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Sat Oct 22 17:20:56 CEST 2011
Revision: 41195
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41195
Author: nazgul
Date: 2011-10-22 15:20:56 +0000 (Sat, 22 Oct 2011)
Log Message:
-----------
Camera tracking integration
===========================
Bunch of fixes for issues pointed on codereview page by Brecht and Campbell.
Modified Paths:
--------------
branches/soc-2011-tomato/release/scripts/startup/bl_operators/clip.py
branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
branches/soc-2011-tomato/source/blender/blenkernel/intern/object.c
branches/soc-2011-tomato/source/blender/editors/include/ED_view3d.h
branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_edit.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_movieclip.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree_types.h
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_scene.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_space.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_ui_api.c
Modified: branches/soc-2011-tomato/release/scripts/startup/bl_operators/clip.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_operators/clip.py 2011-10-22 15:19:16 UTC (rev 41194)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_operators/clip.py 2011-10-22 15:20:56 UTC (rev 41195)
@@ -21,6 +21,7 @@
import os
import shutil
from bpy.types import Operator
+from bpy_extras.io_utils import unpack_list
class CLIP_OT_track_to_empty(Operator):
@@ -45,16 +46,11 @@
constraint = None
ob = None
- if track.name in bpy.data.objects:
- if bpy.data.objects[track.name].type == 'Empty':
- ob = bpy.data.objects[track.name]
+ ob = bpy.data.objects.new(name=track.name, object_data=None)
+ ob.select = True
+ bpy.context.scene.objects.link(ob)
+ bpy.context.scene.objects.active = ob
- if not ob:
- ob = bpy.data.objects.new(name=track.name, object_data=None)
- ob.select = True
- bpy.context.scene.objects.link(ob)
- bpy.context.scene.objects.active = ob
-
for con in ob.constraints:
if con.type == 'FOLLOW_TRACK':
constraint = con
@@ -89,12 +85,17 @@
sc = context.space_data
clip = sc.clip
+ new_verts = []
+
mesh = bpy.data.meshes.new(name="Bundles")
for track in clip.tracking.tracks:
if track.has_bundle:
- mesh.vertices.add(1)
- mesh.vertices[-1].co = track.bundle
+ new_verts.append(track.bundle)
+ if new_verts:
+ mesh.vertices.add(len(new_verts))
+ mesh.vertices.foreach_set("co", unpack_list(new_verts))
+
ob = bpy.data.objects.new(name="Bundles", object_data=mesh)
bpy.context.scene.objects.link(ob)
@@ -247,7 +248,7 @@
# Get clip used for parenting
if con.use_active_clip:
- clip = scene.clip
+ clip = scene.active_clip
else:
clip = con.clip
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-10-22 15:19:16 UTC (rev 41194)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py 2011-10-22 15:20:56 UTC (rev 41195)
@@ -67,7 +67,7 @@
r = clip.tracking.reconstruction
if r.is_reconstructed:
- layout.label(text="Average solve error: %.4f" % \
+ layout.label(text="Average solve error: %.4f" %
(r.average_error))
layout.template_running_jobs()
@@ -113,25 +113,25 @@
row = layout.row(align=True)
- op = row.operator("clip.track_markers", text="", icon='FRAME_PREV')
- op.backwards = True
- op = row.operator("clip.track_markers", text="", \
+ props = row.operator("clip.track_markers", text="", icon='FRAME_PREV')
+ props.backwards = True
+ props = row.operator("clip.track_markers", text="",
icon='PLAY_REVERSE')
- op.backwards = True
- op.sequence = True
- op = row.operator("clip.track_markers", text="", icon='PLAY')
- op.sequence = True
+ props.backwards = True
+ props.sequence = True
+ props = row.operator("clip.track_markers", text="", icon='PLAY')
+ props.sequence = True
row.operator("clip.track_markers", text="", icon='FRAME_NEXT')
col = layout.column(align=True)
- op = col.operator("clip.clear_track_path", text="Clear After")
- op.action = 'REMAINED'
+ props = col.operator("clip.clear_track_path", text="Clear After")
+ props.action = 'REMAINED'
- op = col.operator("clip.clear_track_path", text="Clear Before")
- op.action = 'UPTO'
+ props = col.operator("clip.clear_track_path", text="Clear Before")
+ props.action = 'UPTO'
- op = col.operator("clip.clear_track_path", text="Clear Track Path")
- op.action = 'ALL'
+ props = col.operator("clip.clear_track_path", text="Clear Track Path")
+ props.action = 'ALL'
layout.operator("clip.join_tracks")
@@ -295,8 +295,8 @@
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)
+ icon = 'LOCKED' if act_track.lock else 'UNLOCKED'
+ sub.prop(act_track, "lock", text="", icon=icon)
layout.template_track(sc, "scopes")
@@ -312,9 +312,9 @@
row.menu('CLIP_MT_track_color_presets', text=label)
row.menu('CLIP_MT_track_color_specials', text="", icon="DOWNARROW_HLT")
row.operator("clip.track_color_preset_add", text="", icon="ZOOMIN")
- op = row.operator("clip.track_color_preset_add", \
+ props = row.operator("clip.track_color_preset_add",
text="", icon="ZOOMOUT")
- op.remove_active = True
+ props.remove_active = True
row = layout.row()
row.prop(act_track, "use_custom_color")
@@ -348,8 +348,8 @@
label = bpy.types.CLIP_MT_camera_presets.bl_label
row.menu('CLIP_MT_camera_presets', text=label)
row.operator("clip.camera_preset_add", text="", icon="ZOOMIN")
- op = row.operator("clip.camera_preset_add", text="", icon="ZOOMOUT")
- op.remove_active = True
+ props = row.operator("clip.camera_preset_add", text="", icon="ZOOMOUT")
+ props.remove_active = True
row = layout.row(align=True)
sub = row.split(percentage=0.65)
@@ -478,7 +478,7 @@
sub.operator("clip.stabilize_2d_add", icon='ZOOMIN', text="")
sub.operator("clip.stabilize_2d_remove", icon='ZOOMOUT', text="")
- sub.menu('CLIP_MT_stabilize_2d_specials', text="", \
+ sub.menu('CLIP_MT_stabilize_2d_specials', text="",
icon="DOWNARROW_HLT")
layout.prop(stab, "influence_location")
@@ -648,7 +648,7 @@
layout.separator()
- ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]]
+ ratios = ((1, 8), (1, 4), (1, 2), (1, 1), (2, 1), (4, 1), (8, 1))
for a, b in ratios:
text = "Zoom %d:%d" % (a, b)
@@ -698,14 +698,14 @@
layout.operator("clip.solve_camera")
layout.separator()
- op = layout.operator("clip.clear_track_path", text="Clear After")
- op.action = 'REMAINED'
+ props = layout.operator("clip.clear_track_path", text="Clear After")
+ props.action = 'REMAINED'
- op = layout.operator("clip.clear_track_path", text="Clear Before")
- op.action = 'UPTO'
+ props = layout.operator("clip.clear_track_path", text="Clear Before")
+ props.action = 'UPTO'
- op = layout.operator("clip.clear_track_path", text="Clear Track Path")
- op.action = 'ALL'
+ props = layout.operator("clip.clear_track_path", text="Clear Track Path")
+ props.action = 'ALL'
layout.separator()
layout.operator("clip.join_tracks")
@@ -714,16 +714,16 @@
layout.operator("clip.clean_tracks")
layout.separator()
- op = layout.operator("clip.track_markers", \
+ props = layout.operator("clip.track_markers",
text="Track Frame Backwards")
- op.backwards = True
+ props.backwards = True
- op = layout.operator("clip.track_markers", text="Track Backwards")
- op.backwards = True
- op.sequence = True
+ props = layout.operator("clip.track_markers", text="Track Backwards")
+ props.backwards = True
+ props.sequence = True
- op = layout.operator("clip.track_markers", text="Track Forwards")
- op.sequence = True
+ props = layout.operator("clip.track_markers", text="Track Forwards")
+ props.sequence = True
layout.operator("clip.track_markers", text="Track Frame Forwards")
layout.separator()
@@ -767,8 +767,8 @@
layout.operator("clip.hide_tracks_clear", text="Show Hidden")
layout.operator("clip.hide_tracks", text="Hide Selected")
- op = layout.operator("clip.hide_tracks", text="Hide Unselected")
- op.unselected = True
+ props = layout.operator("clip.hide_tracks", text="Hide Unselected")
+ props.unselected = True
class CLIP_MT_track_transform(Menu):
@@ -806,30 +806,9 @@
def draw(self, context):
layout = self.layout
- sc = context.space_data
+ layout.operator_enum("clip.select_grouped", "group")
- op = layout.operator("clip.select_grouped", text="Select Keyframed")
- op.group = 'KEYFRAMED'
- op = layout.operator("clip.select_grouped", text="Select Estimated")
- op.group = 'ESTIMATED'
-
- op = layout.operator("clip.select_grouped", text="Select Tracked")
- op.group = 'TRACKED'
-
- op = layout.operator("clip.select_grouped", text="Select Locked")
- op.group = 'LOCKED'
-
- op = layout.operator("clip.select_grouped", text="Select Disabled")
- op.group = 'DISABLED'
-
- op = layout.operator("clip.select_grouped", text="Select Failed")
- op.group = 'FAILED'
-
- op = layout.operator("clip.select_grouped", text="Select by Color")
- op.group = 'COLOR'
-
-
class CLIP_MT_tracking_specials(Menu):
bl_label = "Specials"
@@ -840,11 +819,11 @@
def draw(self, context):
layout = self.layout
- op = layout.operator("clip.disable_markers", text="Enable Markers")
- op.action = 'ENABLE'
+ props = layout.operator("clip.disable_markers", text="Enable Markers")
+ props.action = 'ENABLE'
- op = layout.operator("clip.disable_markers", text="Disable markers")
- op.action = 'DISABLE'
+ props = layout.operator("clip.disable_markers", text="Disable markers")
+ props.action = 'DISABLE'
layout.separator()
layout.operator("clip.set_origin")
@@ -854,11 +833,11 @@
layout.operator("clip.hide_tracks_clear", text="Show Tracks")
layout.separator()
- op = layout.operator("clip.lock_tracks", text="Lock Tracks")
- op.action = 'LOCK'
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list