Revision: 38507
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38507
Author:   nazgul
Date:     2011-07-19 10:40:22 +0000 (Tue, 19 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- Remove set but not used variable in clip buttons.
- Set keyframe when sliding marker with mouse.
- Also set keyframe when sliding from preview widget.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
    
branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c       
2011-07-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c       
2011-07-19 10:40:22 UTC (rev 38507)
@@ -453,7 +453,8 @@
                scopes->track_preview= NULL;
        }
 
-       scopes->marker_pos= NULL;
+       scopes->marker= NULL;
+       scopes->track= NULL;
 
        if(clip) {
                BKE_movieclip_last_selection(clip, &sel_type, &sel);
@@ -486,14 +487,14 @@
                                IMB_freeImBuf(ibuf);
                        }
 
-                       scopes->marker_pos= marker->pos;
+                       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];
-                       scopes->marker_flag= &marker->flag;
                }
        }
 
-
+       scopes->framenr= user->framenr;
        scopes->ok= 1;
 }
 

Modified: 
branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c
===================================================================
--- 
branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c  
    2011-07-19 08:31:53 UTC (rev 38506)
+++ 
branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c  
    2011-07-19 10:40:22 UTC (rev 38507)
@@ -56,6 +56,7 @@
 #include "BKE_idprop.h"
 #include "BKE_report.h"
 #include "BKE_texture.h"
+#include "BKE_tracking.h"
 #include "BKE_unit.h"
 
 #include "ED_screen.h"
@@ -4081,11 +4082,14 @@
                 /* resize preview widget itself */
                scopes->track_preview_height = (but->y2 - but->y1) + 
(data->dragstarty - my);
        } else {
-               if(scopes->marker_pos) {
-                       (*scopes->marker_flag)&= ~MARKER_DISABLED;
-                       scopes->marker_pos[0]+= -dx*scopes->slide_scale[0] / 
(but->block->maxx-but->block->minx);
-                       scopes->marker_pos[1]+= -dy*scopes->slide_scale[1] / 
(but->block->maxy-but->block->miny);
+               if(scopes->marker) {
+                       if(scopes->marker->framenr!=scopes->framenr)
+                               scopes->marker= 
BKE_tracking_ensure_marker(scopes->track, scopes->framenr);
 
+                       scopes->marker->flag&= ~MARKER_DISABLED;
+                       scopes->marker->pos[0]+= -dx*scopes->slide_scale[0] / 
(but->block->maxx-but->block->minx);
+                       scopes->marker->pos[1]+= -dy*scopes->slide_scale[1] / 
(but->block->maxy-but->block->miny);
+
                        WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, NULL);
                }
 

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-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c   
2011-07-19 10:40:22 UTC (rev 38507)
@@ -341,7 +341,6 @@
        PropertyRNA *prop;
        PointerRNA scopesptr;
        uiBlock *block;
-       uiBut *bt;
        rctf rect;
        MovieClipScopes *scopes;
 
@@ -369,5 +368,5 @@
 
        scopes->track_preview_height= 
(scopes->track_preview_height<=UI_UNIT_Y)?UI_UNIT_Y:scopes->track_preview_height;
 
-       bt= uiDefBut(block, TRACKPREVIEW, 0, "", rect.xmin, rect.ymin, 
rect.xmax-rect.xmin, scopes->track_preview_height, scopes, 0, 0, 0, 0, "");
+       uiDefBut(block, TRACKPREVIEW, 0, "", rect.xmin, rect.ymin, 
rect.xmax-rect.xmin, scopes->track_preview_height, scopes, 0, 0, 0, 0, "");
 }

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-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c   
2011-07-19 10:40:22 UTC (rev 38507)
@@ -1616,10 +1616,13 @@
        int lock, accurate;
 } SlideMarkerData;
 
-static SlideMarkerData *create_slide_marker_data(MovieTrackingTrack *track, 
MovieTrackingMarker *marker, wmEvent *event, int area, int width, int height)
+static SlideMarkerData *create_slide_marker_data(SpaceClip *sc, 
MovieTrackingTrack *track,
+                       MovieTrackingMarker *marker, wmEvent *event, int area, 
int width, int height)
 {
        SlideMarkerData *data= MEM_callocN(sizeof(SlideMarkerData), "slide 
marker data");
 
+       marker= BKE_tracking_ensure_marker(track, sc->user.framenr);
+
        data->area= area;
        data->track= track;
 
@@ -1705,15 +1708,15 @@
                        if(marker && (marker->flag&MARKER_DISABLED)==0) {
                                if(sc->flag&SC_SHOW_MARKER_SEARCH) {
                                        if(mouse_on_corner(sc, track, 15.0f, 
co, 1, marker->pos, track->search_min, track->search_max, width, height))
-                                               op->customdata= 
create_slide_marker_data(track, marker, event, TRACK_AREA_POINT, width, height);
+                                               op->customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_POINT, width, 
height);
 
                                        if(mouse_on_corner(sc, track, 15.0f, 
co, 0, marker->pos, track->search_min, track->search_max, width, height))
-                                               op->customdata= 
create_slide_marker_data(track, marker, event, TRACK_AREA_SEARCH, width, 
height);
+                                               op->customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, width, 
height);
                                }
 
                                if(sc->flag&SC_SHOW_MARKER_PATTERN)
                                        if(mouse_on_corner(sc, track, 10.0f, 
co, 0, marker->pos, track->pat_min, track->pat_max, width, height))
-                                               op->customdata= 
create_slide_marker_data(track, marker, event, TRACK_AREA_PAT, width, height);
+                                               op->customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_PAT, width, 
height);
 
                                if(op->customdata) {
                                        WM_event_add_modal_handler(C, op);

Modified: branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h
===================================================================
--- branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h      
2011-07-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h      
2011-07-19 10:40:22 UTC (rev 38507)
@@ -42,6 +42,8 @@
 
 struct anim;
 struct ImBuf;
+struct MovieTrackingTrack;
+struct MovieTrackingMarker;
 
 typedef struct MovieClipUser {
        int framenr;    /* current frame number */
@@ -76,9 +78,10 @@
        struct ImBuf *track_preview;    /* ImBuf displayed in track preview */
        float track_pos[2];                             /* sub-pizel position 
of marker in track ImBuf */
        short track_disabled;                   /* active track is disabled, 
special notifier should be drawn */
-       char pad[6];
-       float *marker_pos;                              /* original marker 
position. used for sliding from preview */
-       int *marker_flag;                               /* original marker 
flags. used for sliding from preview */
+       char pad[2];
+       int framenr;                                    /* frame number scopes 
are created for */
+       struct MovieTrackingTrack *track;       /* track scopes are created for 
*/
+       struct MovieTrackingMarker *marker;     /* marker scopes are created 
for */
        float slide_scale[2];                   /* scale used for sliding from 
previewe area */
 } MovieClipScopes;
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to