diff --git a/gtsam/slam/SmartProjectionFactor.h b/gtsam/slam/SmartProjectionFactor.h index 1ee3fdb0b..aad1a27f6 100644 --- a/gtsam/slam/SmartProjectionFactor.h +++ b/gtsam/slam/SmartProjectionFactor.h @@ -205,7 +205,7 @@ public: triangulateSafe(cameras); if (degeneracyMode_ == ZERO_ON_DEGENERACY && !result_) { - // put in "empty" Hessian + // failed: return"empty" Hessian BOOST_FOREACH(Matrix& m, Gs) m = zeros(Base::Dim, Base::Dim); BOOST_FOREACH(Vector& v, gs) @@ -237,6 +237,7 @@ public: if (triangulateForLinearize(cameras)) return Base::createRegularImplicitSchurFactor(cameras, *result_, lambda); else + // failed: return empty return boost::shared_ptr >(); } @@ -246,6 +247,7 @@ public: if (triangulateForLinearize(cameras)) return Base::createJacobianQFactor(cameras, *result_, lambda); else + // failed: return empty return boost::make_shared >(this->keys_); } @@ -261,6 +263,7 @@ public: if (triangulateForLinearize(cameras)) return Base::createJacobianSVDFactor(cameras, *result_, lambda); else + // failed: return empty return boost::make_shared >(this->keys_); }