diff --git a/gtsam/slam/SmartProjectionFactor.h b/gtsam/slam/SmartProjectionFactor.h index 138a29f0a..bf6d20c45 100644 --- a/gtsam/slam/SmartProjectionFactor.h +++ b/gtsam/slam/SmartProjectionFactor.h @@ -171,7 +171,7 @@ public: /// triangulate bool triangulateForLinearize(const Cameras& cameras) const { triangulateSafe(cameras); // imperative, might reset result_ - return (manageDegeneracy_ || result_); + return (result_); } /// linearize returns a Hessianfactor that is an approximation of error(p) diff --git a/gtsam/slam/tests/testSmartProjectionCameraFactor.cpp b/gtsam/slam/tests/testSmartProjectionCameraFactor.cpp index ca346e83e..b5ddc4e25 100644 --- a/gtsam/slam/tests/testSmartProjectionCameraFactor.cpp +++ b/gtsam/slam/tests/testSmartProjectionCameraFactor.cpp @@ -822,6 +822,7 @@ TEST( SmartProjectionCameraFactor, implicitJacobianFactor ) { implicitFactor->add(level_uv_right, c2, unit2); GaussianFactor::shared_ptr gaussianImplicitSchurFactor = implicitFactor->linearize(values); + CHECK(gaussianImplicitSchurFactor); typedef RegularImplicitSchurFactor Implicit9; Implicit9& implicitSchurFactor = dynamic_cast(*gaussianImplicitSchurFactor);