[Bf-blender-cvs] [4dd582c] soc-2016-multiview: add (wrong) read/write correspondence

Tianwei Shen noreply at git.blender.org
Tue Jun 28 05:33:32 CEST 2016


Commit: 4dd582c84a0adbba7763e3d76fee968b9eb20838
Author: Tianwei Shen
Date:   Tue Jun 28 11:33:04 2016 +0800
Branches: soc-2016-multiview
https://developer.blender.org/rB4dd582c84a0adbba7763e3d76fee968b9eb20838

add (wrong) read/write correspondence

===================================================================

M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/writefile.c

===================================================================

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 4fc8136..d23b8ba 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -7467,12 +7467,17 @@ static void lib_link_moviePlaneTracks(FileData *fd, MovieClip *clip, ListBase *t
 	}
 }
 
-static void lib_link_movieCorrespondences(FileData *fd, MovieClip *clip, ListBase *tracksbase)
+static void lib_link_movieCorrespondences(FileData *fd, MovieClip *clip, ListBase *correspondences)
 {
 	MovieTrackingCorrespondence *corr;
 
-	for (corr = tracksbase->first; corr; corr = corr->next) {
+	for (corr = correspondences->first; corr != NULL; corr = corr->next) {
+		corr = newlibadr(fd, clip->id.lib, corr);
 
+		corr->self_track = newlibadr(fd, clip->id.lib, corr->self_track);
+		corr->other_track = newlibadr(fd, clip->id.lib, corr->other_track);
+		corr->self_clip = newlibadr(fd, clip->id.lib, corr->self_clip);
+		corr->other_clip = newlibadr(fd, clip->id.lib, corr->other_clip);
 	}
 }
 
@@ -7491,6 +7496,7 @@ static void lib_link_movieclip(FileData *fd, Main *main)
 			
 			lib_link_movieTracks(fd, clip, &tracking->tracks);
 			lib_link_moviePlaneTracks(fd, clip, &tracking->plane_tracks);
+			lib_link_movieCorrespondences(fd, clip, &tracking->correspondences);
 
 			for (object = tracking->objects.first; object; object = object->next) {
 				lib_link_movieTracks(fd, clip, &object->tracks);
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index fe97c40..fbb96ef 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -3193,7 +3193,7 @@ static void write_movieCorrespondences(WriteData *wd, ListBase *correspondence_b
 {
 	MovieTrackingCorrespondence *corr;
 	for (corr = correspondence_base->first;
-	     corr;
+	     corr != NULL;
 	     corr = corr->next)
 	{
 		writestruct(wd, DATA, "MovieTrackingCorrespondence", 1, corr);
@@ -3225,6 +3225,7 @@ static void write_movieclips(WriteData *wd, ListBase *idbase)
 			write_movieTracks(wd, &tracking->tracks);
 			write_moviePlaneTracks(wd, &tracking->plane_tracks);
 			write_movieReconstruction(wd, &tracking->reconstruction);
+			write_movieCorrespondences(wd, &tracking->correspondences);
 
 			object= tracking->objects.first;
 			while (object) {




More information about the Bf-blender-cvs mailing list