[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38626] branches/soc-2011-salad: Merging r38617 through r38625 from soc-2011-tomato into soc-2011-salad

Sergey Sharybin g.ulairi at gmail.com
Fri Jul 22 23:57:04 CEST 2011


Revision: 38626
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38626
Author:   nazgul
Date:     2011-07-22 21:57:04 +0000 (Fri, 22 Jul 2011)
Log Message:
-----------
Merging r38617 through r38625 from soc-2011-tomato into soc-2011-salad

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38617
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38625

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

Property Changed:
----------------
    branches/soc-2011-salad/


Property changes on: branches/soc-2011-salad
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/branches/soc-2011-carrot:36854,37548,37564,37602,37622,37848,38043,38064,38226,38231,38282,38620
/branches/soc-2011-cucumber:36829-36994
/branches/soc-2011-onion:36833-38309
/branches/soc-2011-pepper:36830-38208
/branches/soc-2011-tomato:36831-38616
/trunk/blender:36834-38615
   + /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/branches/soc-2011-carrot:36854,37548,37564,37602,37622,37848,38043,38064,38226,38231,38282,38620
/branches/soc-2011-cucumber:36829-36994
/branches/soc-2011-onion:36833-38309
/branches/soc-2011-pepper:36830-38208
/branches/soc-2011-tomato:36831-38625
/trunk/blender:36834-38615

Modified: branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c	2011-07-22 21:52:17 UTC (rev 38625)
+++ branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c	2011-07-22 21:57:04 UTC (rev 38626)
@@ -378,27 +378,43 @@
 int BKE_tracking_test_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track)
 {
 	int i, a= 0, b= 0, tot= dst_track->markersnr+src_track->markersnr;
+	int count= 0;
 
 	for(i= 0; i<tot; i++) {
-		if(b>=dst_track->markersnr || a>=src_track->markersnr)
-			break;
+		if(a>=src_track->markersnr) {
+			b++;
+			count++;
+		}
+		else if(b>=dst_track->markersnr) {
+			a++;
+			count++;
+		}
+		else if(src_track->markers[a].framenr<dst_track->markers[b].framenr) {
+			a++;
+			count++;
+		} else if(src_track->markers[a].framenr>dst_track->markers[b].framenr) {
+			b++;
+			count++;
+		} else {
+			if((src_track->markers[a].flag&MARKER_DISABLED)==0 && (dst_track->markers[b].flag&MARKER_DISABLED)==0)
+				return 0;
 
-		if(src_track->markers[a].framenr<dst_track->markers[b].framenr)
 			a++;
-		else if(src_track->markers[a].framenr>dst_track->markers[b].framenr)
 			b++;
-		else
-			return 0;
+			count++;
+		}
 	}
 
-	return 1;
+	return count;
 }
 
 void BKE_tracking_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track)
 {
-	int i, a= 0, b= 0, tot= dst_track->markersnr+src_track->markersnr;
+	int i, a= 0, b= 0, tot;
 	MovieTrackingMarker *markers;
 
+	tot= BKE_tracking_test_join_tracks(dst_track, src_track);
+
 	markers= MEM_callocN(tot*sizeof(MovieTrackingMarker), "tracking joined tracks");
 
 	for(i= 0; i<tot; i++) {
@@ -408,10 +424,17 @@
 		else if(a>=src_track->markersnr) {
 			markers[i]= dst_track->markers[b++];
 		}
-		else if(src_track->markers[a].framenr<dst_track->markers[b].framenr)
+		else if(src_track->markers[a].framenr<dst_track->markers[b].framenr) {
 			markers[i]= src_track->markers[a++];
-		else
+		} else if(src_track->markers[a].framenr>dst_track->markers[b].framenr) {
 			markers[i]= dst_track->markers[b++];
+		} else {
+			if((src_track->markers[a].flag&MARKER_DISABLED)) markers[i]= dst_track->markers[b];
+			else markers[i]= src_track->markers[a++];
+
+			a++;
+			b++;
+		}
 	}
 
 	MEM_freeN(dst_track->markers);




More information about the Bf-blender-cvs mailing list