[Bf-blender-cvs] [aadaff4] soc-2016-multiview: fix self correspondence error

Tianwei Shen noreply at git.blender.org
Tue Jul 19 12:52:06 CEST 2016


Commit: aadaff4a7e7cd60ae9d420db1cc1da59eafcdb82
Author: Tianwei Shen
Date:   Tue Jul 19 18:51:25 2016 +0800
Branches: soc-2016-multiview
https://developer.blender.org/rBaadaff4a7e7cd60ae9d420db1cc1da59eafcdb82

fix self correspondence error

a track cannot link to itself

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

M	source/blender/blenkernel/intern/tracking_correspondence.c

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

diff --git a/source/blender/blenkernel/intern/tracking_correspondence.c b/source/blender/blenkernel/intern/tracking_correspondence.c
index db29b65..1e2a267 100644
--- a/source/blender/blenkernel/intern/tracking_correspondence.c
+++ b/source/blender/blenkernel/intern/tracking_correspondence.c
@@ -95,8 +95,13 @@ MovieTrackingCorrespondence *BKE_tracking_correspondence_add(ListBase *corr_base
                                                              char *error_msg, int error_size)
 {
 	MovieTrackingCorrespondence *corr = NULL;
+	// check self correspondences
+	if (self_track == other_track) {
+		BLI_strncpy(error_msg, N_("Cannot link a track to itself"), error_size);
+		return NULL;
+	}
 	// check duplicate correspondences or conflict correspondence
-	for(corr = corr_base->first; corr != NULL; corr = corr->next)
+	for (corr = corr_base->first; corr != NULL; corr = corr->next)
 	{
 		if (corr->self_clip == self_clip && corr->self_track == self_track) {
 			// duplicate correspondences
@@ -251,6 +256,7 @@ static int libmv_CorrespondencesFromTracking(ListBase *tracking_correspondences,
 	MovieTrackingCorrespondence *corr;
 	corr = tracking_correspondences->first;
 	while (corr) {
+		printf("enter corr\n");
 		int clip1 = -1, clip2 = -1, track1 = -1, track2 = -1;
 		MovieClip *self_clip = corr->self_clip;
 		MovieClip *other_clip = corr->other_clip;
@@ -356,6 +362,7 @@ BKE_tracking_multiview_reconstruction_context_new(MovieClip **clips,
 			int num_valid_corrs = libmv_CorrespondencesFromTracking(&tracking->correspondences, clips,
 			                                                        num_clips, context->correspondences,
 			                                                        context->track_global_index);
+			printf("num valid corrs: %d\n", num_valid_corrs);
 			BLI_assert(num_valid_corrs == BLI_listbase_count(&tracking->correspondences));
 
 			BLI_strncpy(context->object_name, object->name, sizeof(context->object_name));




More information about the Bf-blender-cvs mailing list