Camera tracking integration
authorSergey Sharybin <sergey.vfx@gmail.com>
Sat, 22 Oct 2011 15:20:56 +0000 (15:20 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Sat, 22 Oct 2011 15:20:56 +0000 (15:20 +0000)
===========================

Bunch of fixes for issues pointed on codereview page by Brecht and Campbell.

12 files changed:
release/scripts/startup/bl_operators/clip.py
release/scripts/startup/bl_ui/space_clip.py
source/blender/blenkernel/intern/object.c
source/blender/editors/include/ED_view3d.h
source/blender/editors/space_view3d/view3d_edit.c
source/blender/makesrna/intern/rna_movieclip.c
source/blender/makesrna/intern/rna_nodetree.c
source/blender/makesrna/intern/rna_nodetree_types.h
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_tracking.c
source/blender/makesrna/intern/rna_ui_api.c

index a15f93e..3859620 100644 (file)
@@ -21,6 +21,7 @@ import bpy
 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,15 +46,10 @@ class CLIP_OT_track_to_empty(Operator):
         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]
-
-        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
+        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':
@@ -89,11 +85,16 @@ class CLIP_OT_bundles_to_mesh(Operator):
         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)
 
@@ -247,7 +248,7 @@ class CLIP_OT_constraint_to_fcurve(Operator):
 
         # Get clip used for parenting
         if con.use_active_clip:
-            clip = scene.clip
+            clip = scene.active_clip
         else:
             clip = con.clip
 
index cec4e6d..f5d8b98 100644 (file)
@@ -67,7 +67,7 @@ class CLIP_HT_header(Header):
             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 @@ class CLIP_PT_tools_tracking(Panel):
 
         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 @@ class CLIP_PT_track(Panel):
 
         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 @@ class CLIP_PT_track(Panel):
         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 @@ class CLIP_PT_tracking_camera(Panel):
         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 @@ class CLIP_PT_stabilization(Panel):
         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 @@ class CLIP_MT_view(Menu):
 
         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 @@ class CLIP_MT_track(Menu):
         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 @@ class CLIP_MT_track(Menu):
         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 @@ class CLIP_MT_track_visibility(Menu):
         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,28 +806,7 @@ class CLIP_MT_select_grouped(Menu):
     def draw(self, context):
         layout = self.layout
 
-        sc = context.space_data
-
-        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'
+        layout.operator_enum("clip.select_grouped", "group")
 
 
 class CLIP_MT_tracking_specials(Menu):
@@ -840,11 +819,11 @@ class CLIP_MT_tracking_specials(Menu):
     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 @@ class CLIP_MT_tracking_specials(Menu):
         layout.operator("clip.hide_tracks_clear", text="Show Tracks")
 
         layout.separator()
-        op = layout.operator("clip.lock_tracks", text="Lock Tracks")
-        op.action = 'LOCK'
+        props = layout.operator("clip.lock_tracks", text="Lock Tracks")
+        props.action = 'LOCK'
 
-        op = layout.operator("clip.lock_tracks", text="Unlock Tracks")
-        op.action = 'UNLOCK'
+        props = layout.operator("clip.lock_tracks", text="Unlock Tracks")
+        props.action = 'UNLOCK'
 
 
 class CLIP_MT_camera_presets(Menu):
index ea3ed69..f284d61 100644 (file)
@@ -2119,11 +2119,30 @@ void set_no_parent_ipo(int val)
        no_parent_ipo= val;
 }
 
-void where_is_object_time(Scene *scene, Object *ob, float ctime)
+static int where_is_object_parslow(Object *ob, float obmat[4][4], float slowmat[4][4])
 {
-       float *fp1, *fp2, slowmat[4][4] = MAT4_UNITY;
-       float stime=ctime, fac1, fac2;
+       float *fp1, *fp2;
+       float fac1, fac2;
        int a;
+
+       // include framerate
+       fac1= ( 1.0f / (1.0f + (float)fabs(give_timeoffset(ob))) );
+       if(fac1 >= 1.0f) return 0;
+       fac2= 1.0f-fac1;
+
+       fp1= obmat[0];
+       fp2= slowmat[0];
+       for(a=0; a<16; a++, fp1++, fp2++) {
+               fp1[0]= fac1*fp1[0] + fac2*fp2[0];
+       }
+
+       return 1;
+}
+
+void where_is_object_time(Scene *scene, Object *ob, float ctime)
+{
+       float slowmat[4][4] = MAT4_UNITY;
+       float stime=ctime;
        
        /* new version: correct parent+vertexparent and track+parent */
        /* this one only calculates direct attached parent and track */
@@ -2157,16 +2176,8 @@ void where_is_object_time(Scene *scene, Object *ob, float ctime)
                        solve_parenting(scene, ob, par, ob->obmat, slowmat, 0);
                
                if(ob->partype & PARSLOW) {
-                       // include framerate
-                       fac1= ( 1.0f / (1.0f + (float)fabs(give_timeoffset(ob))) );
-                       if(fac1 >= 1.0f) return;
-                       fac2= 1.0f-fac1;
-                       
-                       fp1= ob->obmat[0];
-                       fp2= slowmat[0];
-                       for(a=0; a<16; a++, fp1++, fp2++) {
-                               fp1[0]= fac1*fp1[0] + fac2*fp2[0];
-                       }
+                       if(!where_is_object_parslow(ob, ob->obmat, slowmat))
+                               return;
                }
        }
        else {
@@ -2196,27 +2207,15 @@ void where_is_object_time(Scene *scene, Object *ob, float ctime)
    used for bundles orientation in 3d space relative to parented blender camera */
 void where_is_object_mat(Scene *scene, Object *ob, float obmat[4][4])
 {
-       float *fp1, *fp2, slowmat[4][4] = MAT4_UNITY;
-       float fac1, fac2;
-       int a;
+       float slowmat[4][4] = MAT4_UNITY;
 
        if(ob->parent) {
                Object *par= ob->parent;
 
                solve_parenting(scene, ob, par, obmat, slowmat, 1);
 
-               if(ob->partype & PARSLOW) {
-                       // include framerate
-                       fac1= ( 1.0f / (1.0f + (float)fabs(give_timeoffset(ob))) );
-                       if(fac1 >= 1.0f) return;
-                       fac2= 1.0f-fac1;
-
-                       fp1= obmat[0];
-                       fp2= slowmat[0];
-                       for(a=0; a<16; a++, fp1++, fp2++) {
-                               fp1[0]= fac1*fp1[0] + fac2*fp2[0];
-                       }
-               }
+               if(ob->partype & PARSLOW)
+                       where_is_object_parslow(ob, obmat, slowmat);
        }
        else {
                object_to_mat4(ob, obmat);
index d574ddd..121cd7e 100644 (file)
@@ -292,4 +292,6 @@ void ED_view3d_camera_lock_init(struct View3D *v3d, struct RegionView3D *rv3d);
 /* copy the view to the camera, return TRUE if */
 int ED_view3d_camera_lock_sync(struct View3D *v3d, struct RegionView3D *rv3d);
 
+struct BGpic *ED_view3D_background_image_add(struct View3D *v3d);
+
 #endif /* ED_VIEW3D_H */
index 115b375..a7dd330 100644 (file)
@@ -2941,17 +2941,8 @@ void VIEW3D_OT_view_persportho(wmOperatorType *ot)
 static BGpic *background_image_add(bContext *C)
 {
        View3D *v3d= CTX_wm_view3d(C);
-       
-       BGpic *bgpic= MEM_callocN(sizeof(BGpic), "Background Image");
-       bgpic->size= 5.0;
-       bgpic->blend= 0.5;
-       bgpic->iuser.fie_ima= 2;
-       bgpic->iuser.ok= 1;
-       bgpic->view= 0; /* 0 for all */
-       
-       BLI_addtail(&v3d->bgpicbase, bgpic);
-       
-       return bgpic;
+
+       return ED_view3D_background_image_add(v3d);
 }
 
 static int background_image_add_exec(bContext *C, wmOperator *UNUSED(op))
@@ -3534,3 +3525,18 @@ void ED_view3d_to_object(Object *ob, const float ofs[3], const float quat[4], co
        ED_view3d_to_m4(mat, ofs, quat, dist);
        object_apply_mat4(ob, mat, TRUE, TRUE);
 }
+
+BGpic *ED_view3D_background_image_add(View3D *v3d)
+{
+       BGpic *bgpic= MEM_callocN(sizeof(BGpic), "Background Image");
+
+       bgpic->size= 5.0;
+       bgpic->blend= 0.5;
+       bgpic->iuser.fie_ima= 2;
+       bgpic->iuser.ok= 1;
+       bgpic->view= 0; /* 0 for all */
+
+       BLI_addtail(&v3d->bgpicbase, bgpic);
+
+       return bgpic;
+}
index 0c8325d..ccd008b 100644 (file)
@@ -171,13 +171,13 @@ static void rna_def_moviecliUser(BlenderRNA *brna)
                {0, NULL, 0, NULL, NULL}};
 
        srna= RNA_def_struct(brna, "MovieClipUser", NULL);
-       RNA_def_struct_ui_text(srna, "Movie Clip User", "Parameters defining how an MovieClip datablock is used by another datablock");
+       RNA_def_struct_ui_text(srna, "Movie Clip User", "Parameters defining how a MovieClip datablock is used by another datablock");
 
        prop= RNA_def_property(srna, "current_frame", PROP_INT, PROP_TIME);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        RNA_def_property_int_sdna(prop, NULL, "framenr");
        RNA_def_property_range(prop, MINAFRAME, MAXFRAME);
-       RNA_def_property_ui_text(prop, "Current Frame", "Get frame number user is points to in clip");
+       RNA_def_property_ui_text(prop, "Current Frame", "Current frame number in movie or image sequence");
 
        /* render size */
        prop= RNA_def_property(srna, "proxy_render_size", PROP_ENUM, PROP_NONE);
index 2386030..3b535f3 100644 (file)
@@ -2448,7 +2448,7 @@ static void def_cmp_stabilize2d(StructRNA *srna)
        prop = RNA_def_property(srna, "filter_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "custom1");
        RNA_def_property_enum_items(prop, filter_type_items);
-       RNA_def_property_ui_text(prop, "Filter", "Method to use to filter rotation");
+       RNA_def_property_ui_text(prop, "Filter", "Method to use to filter stabilization");
        RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 }
 
@@ -2471,7 +2471,7 @@ static void def_cmp_moviedistortion(StructRNA *srna)
        prop = RNA_def_property(srna, "distortion_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "custom1");
        RNA_def_property_enum_items(prop, distortion_type_items);
-       RNA_def_property_ui_text(prop, "Distortion", "Distoriton to use to filter image");
+       RNA_def_property_ui_text(prop, "Distortion", "Distortion to use to filter image");
        RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 }
 
@@ -2488,7 +2488,7 @@ static void dev_cmd_transform(StructRNA *srna)
        prop = RNA_def_property(srna, "filter_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "custom1");
        RNA_def_property_enum_items(prop, filter_type_items);
-       RNA_def_property_ui_text(prop, "Filter", "Method to use to filter rotation");
+       RNA_def_property_ui_text(prop, "Filter", "Method to use to filter transform");
        RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 }
 
index 21c41d6..1477c57 100644 (file)
@@ -121,7 +121,7 @@ DefNode( CompositorNode, CMP_NODE_COLORBALANCE,   def_cmp_colorbalance,   "COLOR
 DefNode( CompositorNode, CMP_NODE_HUECORRECT,     def_cmp_huecorrect,     "HUECORRECT",     HueCorrect,       "Hue Correct",       ""              )
 DefNode( CompositorNode, CMP_NODE_MOVIECLIP,      def_cmp_movieclip,      "MOVIECLIP",      MovieClip,        "MovieClip",         ""              )
 DefNode( CompositorNode, CMP_NODE_TRANSFORM,      dev_cmd_transform,      "TRANSFORM",      Transform,        "Transform",         ""              )
-DefNode( CompositorNode, CMP_NODE_STABILIZE2D,    def_cmp_stabilize2d,    "STABILIZE2D",    Stabilize,        "Stabelize 2D",      ""              )
+DefNode( CompositorNode, CMP_NODE_STABILIZE2D,    def_cmp_stabilize2d,    "STABILIZE2D",    Stabilize,        "Stabilize 2D",      ""              )
 DefNode( CompositorNode, CMP_NODE_MOVIEDISTORTION,def_cmp_moviedistortion,"MOVIEDISTORTION",MovieDistortion,  "Movie Distortion",  ""              )
                                                                                                                                                    
 DefNode( TextureNode,    TEX_NODE_OUTPUT,         def_tex_output,         "OUTPUT",         Output,           "Output",            ""              )
index 044414d..12efc64 100644 (file)
@@ -3743,7 +3743,7 @@ void RNA_def_scene(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Transform Orientations", "");
 
        /* acctive MovieClip */
-       prop= RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
+       prop= RNA_def_property(srna, "active_clip", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "clip");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_struct_type(prop, "MovieClip");
index af25373..1568afa 100644 (file)
@@ -855,15 +855,7 @@ static void rna_BackgroundImage_opacity_set(PointerRNA *ptr, float value)
 
 static BGpic *rna_BackgroundImage_add(View3D *v3d)
 {
-       BGpic *bgpic= MEM_callocN(sizeof(BGpic), "Background Image");
-
-       bgpic->size= 5.0;
-       bgpic->blend= 0.5;
-       bgpic->iuser.fie_ima= 2;
-       bgpic->iuser.ok= 1;
-       bgpic->view= 0; /* 0 for all */
-
-       BLI_addtail(&v3d->bgpicbase, bgpic);
+       BGpic *bgpic= ED_view3D_background_image_add(v3d);;
 
        WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
@@ -1562,7 +1554,7 @@ static void rna_def_space_view3d(BlenderRNA *brna)
 
        prop= RNA_def_property(srna, "show_camera_path", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_CAMERAPATH);
-       RNA_def_property_ui_text(prop, "Show Camera Path", "Show reconstructed path of ameraip");
+       RNA_def_property_ui_text(prop, "Show Camera Path", "Show reconstructed path of camera");
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "show_bundle_name", PROP_BOOLEAN, PROP_NONE);
index 0b71309..b4cf409 100644 (file)
@@ -237,20 +237,20 @@ static void rna_def_trackingSettings(BlenderRNA *brna)
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem cleanup_items[] = {
-               {TRACKING_CLEAN_SELECT, "SELECT", 0, "Select", "Select un-clean tracks"},
-               {TRACKING_CLEAN_DELETE_TRACK, "DELETE_TRACK", 0, "Delete Track", "Delete un-clean tracks"},
-               {TRACKING_CLEAN_DELETE_SEGMENT, "DELETE_SEGMENTS", 0, "Delete Segments", "Delete un-clean segments of tracks"},
+               {TRACKING_CLEAN_SELECT, "SELECT", 0, "Select", "Select unclean tracks"},
+               {TRACKING_CLEAN_DELETE_TRACK, "DELETE_TRACK", 0, "Delete Track", "Delete unclean tracks"},
+               {TRACKING_CLEAN_DELETE_SEGMENT, "DELETE_SEGMENTS", 0, "Delete Segments", "Delete unclean segments of tracks"},
                {0, NULL, 0, NULL, NULL}
        };
 
        srna= RNA_def_struct(brna, "MovieTrackingSettings", NULL);
-       RNA_def_struct_ui_text(srna, "Movie tracking settings", "Match-moving tracking settings");
+       RNA_def_struct_ui_text(srna, "Movie tracking settings", "Match moving settings");
 
        /* tracker */
        prop= RNA_def_property(srna, "tracker", PROP_ENUM, PROP_NONE);
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_enum_items(prop, tracker_items);
-       RNA_def_property_ui_text(prop, "tracker", "Tracking algorithm to use");
+       RNA_def_property_ui_text(prop, "Tracker", "Tracking algorithm to use");
 
        /* speed */
        prop= RNA_def_property(srna, "speed", PROP_ENUM, PROP_NONE);
@@ -270,7 +270,7 @@ static void rna_def_trackingSettings(BlenderRNA *brna)
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_int_sdna(prop, NULL, "adjframes");
        RNA_def_property_range(prop, 0, INT_MAX);
-       RNA_def_property_ui_text(prop, "Adjust Frames", "Automatically re-adjust marker position using position on each N frames. 0 means only keyframed position is sued");
+       RNA_def_property_ui_text(prop, "Adjust Frames", "Automatically re-adjust marker position using position on each N frames. 0 means only keyframed position is used");
 
        /* margin */
        prop= RNA_def_property(srna, "margin", PROP_INT, PROP_NONE);
@@ -312,14 +312,14 @@ static void rna_def_trackingSettings(BlenderRNA *brna)
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_int_sdna(prop, NULL, "clean_frames");
        RNA_def_property_range(prop, 0, INT_MAX);
-       RNA_def_property_ui_text(prop, "Tracked Frames", "Affect on tracks which are tracked less than specified amount of frames");
+       RNA_def_property_ui_text(prop, "Tracked Frames", "Effect on tracks which are tracked less than the specified amount of frames");
 
        /* reprojection error */
        prop= RNA_def_property(srna, "clean_error", PROP_FLOAT, PROP_NONE);
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_float_sdna(prop, NULL, "clean_error");
        RNA_def_property_range(prop, 0, FLT_MAX);
-       RNA_def_property_ui_text(prop, "Reprojection Error", "Affect on tracks with have got larger reprojection error");
+       RNA_def_property_ui_text(prop, "Reprojection Error", "Effect on tracks which have a larger reprojection error");
 
        /* cleanup action */
        prop= RNA_def_property(srna, "clean_action", PROP_ENUM, PROP_NONE);
@@ -353,7 +353,7 @@ static void rna_def_trackingCamera(BlenderRNA *brna)
        prop= RNA_def_property(srna, "focal_length", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "focal");
        RNA_def_property_range(prop, 0.0f, 5000.0f);
-       RNA_def_property_ui_text(prop, "Focal Length", "Camera's focal length in pixels");
+       RNA_def_property_ui_text(prop, "Focal Length", "Camera's focal length");
        RNA_def_property_float_funcs(prop, "rna_trackingCamera_focal_get", "rna_trackingCamera_focal_set", NULL);
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, NULL);
 
@@ -375,19 +375,19 @@ static void rna_def_trackingCamera(BlenderRNA *brna)
        prop= RNA_def_property(srna, "k1", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "k1");
        RNA_def_property_ui_range(prop, -10, 10, .1, 3);
-       RNA_def_property_ui_text(prop, "K1", "");
+       RNA_def_property_ui_text(prop, "K1", "First coefficient of third order polynomial radial distortion");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_flushUpdate");
 
        prop= RNA_def_property(srna, "k2", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "k2");
        RNA_def_property_ui_range(prop, -10, 10, .1, 3);
-       RNA_def_property_ui_text(prop, "K2", "");
+       RNA_def_property_ui_text(prop, "K2", "Second coefficient of third order polynomial radial distortion");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_flushUpdate");
 
        prop= RNA_def_property(srna, "k3", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "k3");
        RNA_def_property_ui_range(prop, -10, 10, .1, 3);
-       RNA_def_property_ui_text(prop, "K3", "");
+       RNA_def_property_ui_text(prop, "K3", "Third coefficient of third order polynomial radial distortion");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_flushUpdate");
 
        /* pixel aspect */
@@ -408,11 +408,11 @@ static void rna_def_trackingMarker(BlenderRNA *brna)
        RNA_def_struct_ui_text(srna, "Movie tracking marker data", "Match-moving marker data for tracking");
 
        /* position */
-       prop= RNA_def_property(srna, "pos", PROP_FLOAT, PROP_TRANSLATION);
+       prop= RNA_def_property(srna, "co", PROP_FLOAT, PROP_TRANSLATION);
        RNA_def_property_array(prop, 2);
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 5);
        RNA_def_property_float_sdna(prop, NULL, "pos");
-       RNA_def_property_ui_text(prop, "Position", "Marker position at frame in unified coordinates");
+       RNA_def_property_ui_text(prop, "Position", "Marker position at frame in normalized coordinates");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, NULL);
 
        /* frame */
@@ -456,14 +456,14 @@ static void rna_def_trackingTrack(BlenderRNA *brna)
        RNA_def_property_array(prop, 2);
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 5);
        RNA_def_property_float_sdna(prop, NULL, "pat_min");
-       RNA_def_property_ui_text(prop, "Pattern Min", "Left-bottom corner of pattern area in unified coordinates relative to marker position");
+       RNA_def_property_ui_text(prop, "Pattern Min", "Left-bottom corner of pattern area in normalized coordinates relative to marker position");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_trackerPattern_update");
 
        prop= RNA_def_property(srna, "pattern_max", PROP_FLOAT, PROP_TRANSLATION);
        RNA_def_property_array(prop, 2);
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 5);
        RNA_def_property_float_sdna(prop, NULL, "pat_max");
-       RNA_def_property_ui_text(prop, "Pattern Max", "Right-bottom corner of pattern area in unified coordinates relative to marker position");
+       RNA_def_property_ui_text(prop, "Pattern Max", "Right-bottom corner of pattern area in normalized coordinates relative to marker position");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_trackerPattern_update");
 
        /* Search */
@@ -471,14 +471,14 @@ static void rna_def_trackingTrack(BlenderRNA *brna)
        RNA_def_property_array(prop, 2);
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 5);
        RNA_def_property_float_sdna(prop, NULL, "search_min");
-       RNA_def_property_ui_text(prop, "Search Min", "Left-bottom corner of search area in unified coordinates relative to marker position");
+       RNA_def_property_ui_text(prop, "Search Min", "Left-bottom corner of search area in normalized coordinates relative to marker position");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_trackerSearch_update");
 
        prop= RNA_def_property(srna, "search_max", PROP_FLOAT, PROP_TRANSLATION);
        RNA_def_property_array(prop, 2);
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 5);
        RNA_def_property_float_sdna(prop, NULL, "search_max");
-       RNA_def_property_ui_text(prop, "Search Max", "Right-bottom corner of search area in unified coordinates relative to marker position");
+       RNA_def_property_ui_text(prop, "Search Max", "Right-bottom corner of search area in normalized coordinates relative to marker position");
        RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_trackerSearch_update");
 
        /* markers_count */
@@ -526,16 +526,16 @@ static void rna_def_trackingTrack(BlenderRNA *brna)
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        RNA_def_property_ui_text(prop, "Bundle", "Position of bundle reconstructed from this tarck");
 
-       /* hidden */
-       prop= RNA_def_property(srna, "hidden", PROP_BOOLEAN, PROP_NONE);
+       /* hide */
+       prop= RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACK_HIDDEN);
-       RNA_def_property_ui_text(prop, "Hidden", "Track is hidden");
+       RNA_def_property_ui_text(prop, "Hide", "Track is hidden");
        RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
 
        /* locked */
-       prop= RNA_def_property(srna, "locked", PROP_BOOLEAN, PROP_NONE);
+       prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACK_LOCKED);
-       RNA_def_property_ui_text(prop, "Locked", "Track is locked and all changes to it are disabled");
+       RNA_def_property_ui_text(prop, "Lock", "Track is locked and all changes to it are disabled");
        RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
 
        /* custom color */
@@ -678,7 +678,7 @@ static void rna_def_trackingReconstruction(BlenderRNA *brna)
        prop= RNA_def_property(srna, "is_reconstructed", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACKING_RECONSTRUCTED);
-       RNA_def_property_ui_text(prop, "Reconstructed", "Is tracking data contsains valid reconstruction information");
+       RNA_def_property_ui_text(prop, "Reconstructed", "Is tracking data contains valid reconstruction information");
 
        /* average_error */
        prop= RNA_def_property(srna, "average_error", PROP_FLOAT, PROP_NONE);
index 70d8eea..7a1d4b5 100644 (file)
@@ -400,7 +400,7 @@ void RNA_api_ui_layout(StructRNA *srna)
        RNA_def_boolean(func, "compact", 0, "", "Use more compact layout");
 
        func= RNA_def_function(srna, "template_movieclip", "uiTemplateMovieClip");
-       RNA_def_function_ui_description(func, "Item(s). User interface for selecting movie clips and their source paths.");
+       RNA_def_function_ui_description(func, "Item(s). User interface for selecting movie clips and their source paths");
        RNA_def_function_flag(func, FUNC_USE_CONTEXT);
        api_ui_item_rna_common(func);
        RNA_def_boolean(func, "compact", 0, "", "Use more compact layout");
@@ -410,7 +410,7 @@ void RNA_api_ui_layout(StructRNA *srna)
        api_ui_item_rna_common(func);
 
        func= RNA_def_function(srna, "template_marker", "uiTemplateMarker");
-       RNA_def_function_ui_description(func, "Item. A movie-marker widget to control which depends on frame number.");
+       RNA_def_function_ui_description(func, "Item. A widget to control single marker settings.");
        api_ui_item_rna_common(func);
        parm= RNA_def_pointer(func, "clip_user", "MovieClipUser", "", "");
        RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR|PROP_NEVER_NULL);