[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39521] branches/soc-2011-tomato/source/ blender/blenkernel/intern/tracking.c: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Thu Aug 18 14:25:50 CEST 2011
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;
}
More information about the Bf-blender-cvs
mailing list