Revision: 39521
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39521
Author:   nazgul
Date:     2011-08-18 12:25:50 +0000 (Thu, 18 Aug 2011)
Log Message:
-----------
Camera tracking integration
===========================

Auto-disable marker in mid-shot.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c        
2011-08-18 12:20:10 UTC (rev 39520)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c        
2011-08-18 12:25:50 UTC (rev 39521)
@@ -485,6 +485,8 @@
        MovieClipUser user;
        MovieClip *clip;
 
+       int first_time;
+
        TrackContext *track_context;
        int num_tracks;
 
@@ -507,6 +509,7 @@
        context->backwards= backwards;
        context->hash= BLI_ghash_new(BLI_ghashutil_ptrhash, 
BLI_ghashutil_ptrcmp, "tracking trackHash");
        context->sync_frame= user->framenr;
+       context->first_time= 1;
 
        /* count */
        track= tracking->tracks.first;
@@ -982,6 +985,27 @@
                        }
 
                        if(tracked) {
+                               if(context->first_time) {
+                                       int prevframe;
+
+                                       if(context->backwards) prevframe= 
curfra+1;
+                                       else prevframe= curfra-1;
+
+                                       /* check if there's no keyframe/tracked 
markers before tracking marker.
+                                           if so -- create disabled marker 
before currently tracking "segment" */
+                                       if(!BKE_tracking_has_marker(track, 
prevframe)) {
+                                               marker_new= *marker;
+                                               marker_new.framenr= prevframe;
+
+                                               marker_new.flag|= 
MARKER_DISABLED;
+
+                                               #pragma omp critical
+                                               {
+                                                       
BKE_tracking_insert_marker(track, &marker_new);
+                                               }
+                                       }
+                               }
+
                                memset(&marker_new, 0, sizeof(marker_new));
                                marker_new.pos[0]= (origin[0]+x2)/ibuf_new->x;
                                marker_new.pos[1]= (origin[1]+y2)/ibuf_new->y;
@@ -1015,6 +1039,7 @@
        }
 
        IMB_freeImBuf(ibuf_new);
+       context->first_time= 0;
 
        return ok;
 }

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

Reply via email to