Revision: 38532
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38532
Author:   nazgul
Date:     2011-07-20 10:51:47 +0000 (Wed, 20 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- Internal change: do not use maroses for checking the only
  one bit of track/marker flags.
- Do not display track name for disabled markers when
  "Show Disabled" is turned off.
- Option to lock tracks. Locked tracks can't be be moved,
  scaled, re-tracked and so.

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/movieclip.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h
    branches/soc-2011-tomato/source/blender/editors/interface/resources.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.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/editors/transform/transform_conversions.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h
    branches/soc-2011-tomato/source/blender/makesdna/DNA_userdef_types.h
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_userdef.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-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py        
2011-07-20 10:51:47 UTC (rev 38532)
@@ -212,16 +212,17 @@
         act_track = clip.tracking.active_track
 
         layout.prop(act_track, "name")
+        layout.prop(act_track, "locked")
 
         layout.template_track(sc, "scopes")
 
-        if act_track:
-            row = layout.row()
-            row.prop(act_track, "use_red_channel", text="Red")
-            row.prop(act_track, "use_green_channel", text="Green")
-            row.prop(act_track, "use_blue_channel", text="Blue")
+        row = layout.row()
+        row.prop(act_track, "use_red_channel", text="Red")
+        row.prop(act_track, "use_green_channel", text="Green")
+        row.prop(act_track, "use_blue_channel", text="Blue")
 
 
+
 class CLIP_PT_track_settings(bpy.types.Panel):
     bl_space_type = 'CLIP_EDITOR'
     bl_region_type = 'UI'
@@ -498,13 +499,21 @@
         op = layout.operator("clip.disable_markers", text="Disable markers")
         op.action = 'DISABLE'
 
+        layout.separator()
         layout.operator("clip.set_origin")
 
         layout.separator()
         layout.operator("clip.hide_tracks")
         layout.operator("clip.hide_tracks_clear", text="Show Tracks")
 
+        layout.separator()
+        op = layout.operator("clip.lock_tracks", text="Lock Tracks")
+        op.action = 'LOCK'
 
+        op = layout.operator("clip.lock_tracks", text="Unlock Tracks")
+        op.action = 'UNLOCK'
+
+
 class CLIP_MT_camera_presets(bpy.types.Menu):
     bl_label = "Camera Presets"
     preset_subdir = "tracking_camera"

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h   
2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h   
2011-07-20 10:51:47 UTC (rev 38532)
@@ -84,10 +84,9 @@
 
 struct MovieTrackingTrack *BKE_tracking_indexed_bundle(struct MovieTracking 
*tracking, int bundlenr);
 
-#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 TRACK_VISIBLE(track)                           
(((track)->flag&TRACK_HIDDEN)==0)
+#define TRACK_SELECTED(track)                          
(((track->flag&TRACK_HIDDEN)==0) && ((track)->flag&SELECT || 
(track)->pat_flag&SELECT || (track)->search_flag&SELECT))
+#define TRACK_AREA_SELECTED(track, area)       
(((track->flag&TRACK_HIDDEN)==0) && 
((area)==TRACK_AREA_POINT?(track)->flag&SELECT : 
((area)==TRACK_AREA_PAT?(track)->pat_flag&SELECT:(track)->search_flag&SELECT)))
+
 #define MARKER_VISIBLE(sc, marker)                     
(((marker)->flag&MARKER_DISABLED)==0 || ((sc)->flag&SC_HIDE_DISABLED)==0)
 
 #define CLAMP_PAT_DIM          1

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c       
2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c       
2011-07-20 10:51:47 UTC (rev 38532)
@@ -487,10 +487,12 @@
                                IMB_freeImBuf(ibuf);
                        }
 
-                       scopes->marker= marker;
-                       scopes->track= track;
-                       scopes->slide_scale[0]= 
track->pat_max[0]-track->pat_min[0];
-                       scopes->slide_scale[1]= 
track->pat_max[1]-track->pat_min[1];
+                       if((track->flag&TRACK_LOCKED)==0) {
+                               scopes->marker= marker;
+                               scopes->track= track;
+                               scopes->slide_scale[0]= 
track->pat_max[0]-track->pat_min[0];
+                               scopes->slide_scale[1]= 
track->pat_max[1]-track->pat_min[1];
+                       }
                }
        }
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c        
2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c        
2011-07-20 10:51:47 UTC (rev 38532)
@@ -422,7 +422,7 @@
 
        track= tracking->tracks.first;
        while(track) {
-               if(TRACK_VIEW_SELECTED(track) && TRACK_VISIBLE(track)) {
+               if(TRACK_SELECTED(track) && (track->flag&TRACK_LOCKED)==0) {
                        MovieTrackingMarker *marker= 
BKE_tracking_get_marker(track, user->framenr);
 
                        if((marker->flag&MARKER_DISABLED)==0) {

Modified: branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h      
2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/include/UI_resources.h      
2011-07-20 10:51:47 UTC (rev 38532)
@@ -252,7 +252,8 @@
        TH_DIS_MARKER,
        TH_PATH_BEFORE,
        TH_PATH_AFTER,
-       TH_CAMERA_PATH
+       TH_CAMERA_PATH,
+       TH_LOCK_MARKER
 };
 /* XXX WARNING: previous is saved in file, so do not change order! */
 

Modified: branches/soc-2011-tomato/source/blender/editors/interface/resources.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/interface/resources.c       
2011-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/interface/resources.c       
2011-07-20 10:51:47 UTC (rev 38532)
@@ -430,6 +430,8 @@
                                cp= ts->path_after; break;
                        case TH_CAMERA_PATH:
                                cp= ts->camera_path; break;
+                       case TH_LOCK_MARKER:
+                               cp= ts->lock_marker; break;
                        }
                }
        }
@@ -824,6 +826,7 @@
        SETCOL(btheme->tclip.act_marker, 0xff, 0xff, 0xff, 255);
        SETCOL(btheme->tclip.sel_marker, 0xff, 0xff, 0x00, 255);
        SETCOL(btheme->tclip.dis_marker, 0x7f, 0x00, 0x00, 255);
+       SETCOL(btheme->tclip.lock_marker, 0x7f, 0x7f, 0x7f, 255);
        SETCOL(btheme->tclip.path_before, 0xff, 0x00, 0x00, 255);
        SETCOL(btheme->tclip.path_after, 0x00, 0x00, 0xff, 255);
 }
@@ -1604,6 +1607,7 @@
                                SETCOL(btheme->tclip.act_marker, 0xff, 0xff, 
0xff, 255);
                                SETCOL(btheme->tclip.sel_marker, 0xff, 0xff, 
0x00, 255);
                                SETCOL(btheme->tclip.dis_marker, 0x7f, 0x00, 
0x00, 255);
+                               SETCOL(btheme->tclip.lock_marker, 0x7f, 0x7f, 
0x7f, 255);
                                SETCOL(btheme->tclip.path_before, 0xff, 0x00, 
0x00, 255);
                                SETCOL(btheme->tclip.path_after, 0x00, 0x00, 
0xff, 255);
                        }

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-07-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c   
2011-07-20 10:51:47 UTC (rev 38532)
@@ -260,6 +260,9 @@
        if(type!=MCLIP_SEL_TRACK)
                return 0;
 
+       if(track->flag&TRACK_LOCKED)
+               return 0;
+
        return 1;
 }
 

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-20 09:54:27 UTC (rev 38531)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c      
2011-07-20 10:51:47 UTC (rev 38532)
@@ -328,6 +328,11 @@
 
        /* marker position */
        if((track->flag&SELECT)==sel && (marker->flag&MARKER_DISABLED)==0) {
+               if(track->flag&TRACK_LOCKED) {
+                       if(act) UI_ThemeColor(TH_ACT_MARKER);
+                       else if(track->flag&SELECT) 
UI_ThemeColorShade(TH_LOCK_MARKER, 64);
+                       else UI_ThemeColor(TH_LOCK_MARKER);
+               } else
                if(track->flag&SELECT) UI_ThemeColor(color);
                else UI_ThemeColor(TH_MARKER);
 
@@ -349,9 +354,14 @@
 
        show_pat= ((marker->flag&MARKER_DISABLED)==0 || 
(sc->flag&SC_SHOW_MARKER_SEARCH)==0);
        if((track->pat_flag&SELECT)==sel && show_pat) {
-               if(marker->flag&MARKER_DISABLED) {
+               if(track->flag&TRACK_LOCKED) {
                        if(act) UI_ThemeColor(TH_ACT_MARKER);
-                       else if(track->search_flag&SELECT) 
UI_ThemeColorShade(TH_DIS_MARKER, 128);
+                       else if(track->pat_flag&SELECT) 
UI_ThemeColorShade(TH_LOCK_MARKER, 64);
+                       else UI_ThemeColor(TH_LOCK_MARKER);
+               }
+               else if(marker->flag&MARKER_DISABLED) {
+                       if(act) UI_ThemeColor(TH_ACT_MARKER);
+                       else if(track->pat_flag&SELECT) 
UI_ThemeColorShade(TH_DIS_MARKER, 128);
                        else UI_ThemeColor(TH_DIS_MARKER);
                } else {
                        if(track->pat_flag&SELECT) UI_ThemeColor(color);
@@ -370,8 +380,13 @@
 
        /* search */
        if((track->search_flag&SELECT)==sel) {
-               if(marker->flag&MARKER_DISABLED) {
+               if(track->flag&TRACK_LOCKED) {
                        if(act) UI_ThemeColor(TH_ACT_MARKER);
+                       else if(track->search_flag&SELECT) 
UI_ThemeColorShade(TH_LOCK_MARKER, 64);
+                       else UI_ThemeColor(TH_LOCK_MARKER);
+               }
+               else if(marker->flag&MARKER_DISABLED) {
+                       if(act) UI_ThemeColor(TH_ACT_MARKER);
                        else if(track->search_flag&SELECT) 
UI_ThemeColorShade(TH_DIS_MARKER, 128);
                        else UI_ThemeColor(TH_DIS_MARKER);
                } else {
@@ -401,9 +416,12 @@
        float x, y, dx, dy, tdx, tdy;
        int tiny= sc->flag&SC_SHOW_TINY_MARKER;
 
-       if(!TRACK_SELECTED(track) || (tiny && outline) || 
(marker->flag&MARKER_DISABLED))
+       if((tiny && outline) || (marker->flag&MARKER_DISABLED))
                return;
 
+       if(!TRACK_SELECTED(track) || track->flag&TRACK_LOCKED)
+               return;
+
        if(outline) {
                glLineWidth(3.0f);
                UI_ThemeColor(TH_MARKER_OUTLINE);
@@ -525,6 +543,10 @@
                BLI_snprintf(str, sizeof(str), "%s", track->name);
 
        UI_DrawString(x, y, str);
+
+       if(track->flag&TRACK_LOCKED) {
+               UI_DrawString(x, y-12.f*UI_DPI_FAC, "locked");
+       }
 }
 
 static void view2d_to_region_float(View2D *v2d, float x, float y, float 
*regionx, float *regiony)
@@ -569,7 +591,7 @@
        if(sc->flag&SC_SHOW_TRACK_PATH) {
                track= tracking->tracks.first;
                while(track) {
-                       if(TRACK_VISIBLE(track))
+                       if((track->flag&TRACK_HIDDEN)==0)
                                draw_track_path(sc, clip, track);
 
                        track= track->next;
@@ -579,7 +601,7 @@
        /* markers outline and non-selected areas */
        track= tracking->tracks.first;
        while(track) {
-               if(TRACK_VISIBLE(track)) {
+               if((track->flag&TRACK_HIDDEN)==0) {
                        marker= BKE_tracking_get_marker(track, framenr);
 

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to