[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41805] trunk/blender/source/blender/ blenkernel/intern/tracking.c: Camera solving: fixed incorrect warnings about failure of solving some frames

Sergey Sharybin sergey.vfx at gmail.com
Sun Nov 13 18:16:05 CET 2011


Revision: 41805
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41805
Author:   nazgul
Date:     2011-11-13 17:16:04 +0000 (Sun, 13 Nov 2011)
Log Message:
-----------
Camera solving: fixed incorrect warnings about failure of solving some frames

Error was caused y not very accurate calculating which frames should be solved.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/tracking.c

Modified: trunk/blender/source/blender/blenkernel/intern/tracking.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/tracking.c	2011-11-13 16:38:14 UTC (rev 41804)
+++ trunk/blender/source/blender/blenkernel/intern/tracking.c	2011-11-13 17:16:04 UTC (rev 41805)
@@ -1289,8 +1289,27 @@
 		}
 
 		if(track->markersnr) {
-			if(track->markers[0].framenr<sfra) sfra= track->markers[0].framenr;
-			if(track->markers[track->markersnr-1].framenr>efra) efra= track->markers[track->markersnr-1].framenr;
+			int first= 0, last= track->markersnr;
+			MovieTrackingMarker *first_marker= &track->markers[0];
+			MovieTrackingMarker *last_marker= &track->markers[track->markersnr-1];
+
+			/* find first not-disabled marker */
+			while(first<track->markersnr-1 && first_marker->flag&MARKER_DISABLED) {
+				first++;
+				first_marker++;
+			}
+
+			/* find last not-disabled marker */
+			while(last>=0 && last_marker->flag&MARKER_DISABLED) {
+				last--;
+				last_marker--;
+			}
+
+			if(first<track->markersnr-1)
+				sfra= MIN2(sfra, first_marker->framenr);
+
+			if(last>=0)
+				efra= MAX2(efra, last_marker->framenr);
 		}
 
 		track= track->next;




More information about the Bf-blender-cvs mailing list