From 4201f9bcf3807f470c17ea6c97748a693cd6c818 Mon Sep 17 00:00:00 2001 From: PierreGtch <pierre.guetschel@gmail.com> Date: Tue, 18 Jun 2019 14:51:51 +0200 Subject: [PATCH] ProcessorLoopClosureBase : computeFeatures returns a bool --- include/core/processor/processor_loopclosure_base.h | 4 +++- src/processor/processor_loopclosure_base.cpp | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/core/processor/processor_loopclosure_base.h b/include/core/processor/processor_loopclosure_base.h index 151e7def9..944a1ca29 100644 --- a/include/core/processor/processor_loopclosure_base.h +++ b/include/core/processor/processor_loopclosure_base.h @@ -89,8 +89,10 @@ protected: * * In this method you should add the capture to the keyframe if necessary * and add the features to the capture + * + * Returns a bool that tells if features were successfully created */ - virtual void computeFeatures(std::pair<FrameBasePtr,CaptureBasePtr>) = 0; + virtual bool computeFeatures(std::pair<FrameBasePtr,CaptureBasePtr>) = 0; /** \brief Find a KF that would be a good candidate to close a loop * if validateLoop is not overwritten, a loop will be closed with the returned candidate diff --git a/src/processor/processor_loopclosure_base.cpp b/src/processor/processor_loopclosure_base.cpp index f981cb0ab..04408df13 100644 --- a/src/processor/processor_loopclosure_base.cpp +++ b/src/processor/processor_loopclosure_base.cpp @@ -28,9 +28,9 @@ void ProcessorLoopClosureBase::process(CaptureBasePtr _incoming_ptr) { std::pair<FrameBasePtr,CaptureBasePtr> pairKC = selectPairKC(); if (pairKC.first==nullptr || pairKC.second==nullptr) return; - computeFeatures(pairKC); + bool success_computeFeatures = computeFeatures(pairKC); - if (voteSearchLoopClosure(_incoming_ptr)) + if (success_computeFeatures && voteSearchLoopClosure(_incoming_ptr)) { CaptureBasePtr capture_1 = pairKC.second; CaptureBasePtr capture_2 = findLoopCandidate(capture_1); -- GitLab