From a8be08a19a9c718211d1c68e6f041e5e9be5189f Mon Sep 17 00:00:00 2001 From: matlabbe Date: Thu, 19 May 2016 16:11:26 -0400 Subject: [PATCH] Registration: if parent registration fails, continue with the child if the prior guess is not null --- corelib/src/Registration.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/corelib/src/Registration.cpp b/corelib/src/Registration.cpp index 2ba01cf7..33b36363 100644 --- a/corelib/src/Registration.cpp +++ b/corelib/src/Registration.cpp @@ -186,6 +186,11 @@ Transform Registration::computeTransformationMod( info = *infoOut; } + if(!guess.isNull() && force3DoF_) + { + guess = guess.to3DoF(); + } + Transform t = computeTransformationImpl(from, to, guess, info); if(varianceFromInliersCount_) @@ -207,6 +212,11 @@ Transform Registration::computeTransformationMod( { t = child_->computeTransformationMod(from, to, force3DoF_?t.to3DoF():t, &info); } + else if(!guess.isNull()) + { + // This registration approach failed, continue with the guess for the next registration + t = child_->computeTransformationMod(from, to, guess, &info); + } } else if(!t.isNull() && force3DoF_) {