[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