[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