diff --git a/src/capture/capture_base.cpp b/src/capture/capture_base.cpp index e6d4a1e660bd0664f2fa1196c2ab558840664263..a154cdbb4b62606dc5260310cbfd5b4052bda54c 100644 --- a/src/capture/capture_base.cpp +++ b/src/capture/capture_base.cpp @@ -158,13 +158,15 @@ FactorBasePtrList CaptureBase::getFactorList() void CaptureBase::getFactorList(FactorBaseConstPtrList& _fac_list) const { for (auto f_ptr : getFeatureList()) - f_ptr->getFactorList(_fac_list); + if (not f_ptr->isRemoving()) + f_ptr->getFactorList(_fac_list); } void CaptureBase::getFactorList(FactorBasePtrList& _fac_list) { for (auto f_ptr : getFeatureList()) - f_ptr->getFactorList(_fac_list); + if (not f_ptr->isRemoving()) + f_ptr->getFactorList(_fac_list); } FactorBasePtr CaptureBase::addConstrainedBy(FactorBasePtr _fac_ptr) diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp index aae21b6eb2fa9d5552e8212259299b71e0e0c440..390d6d51019aea6a65208707b1b8671194dc060e 100644 --- a/src/frame/frame_base.cpp +++ b/src/frame/frame_base.cpp @@ -351,13 +351,15 @@ FactorBasePtrList FrameBase::getFactorList() void FrameBase::getFactorList(FactorBaseConstPtrList& _fac_list) const { for (auto c_ptr : getCaptureList()) - c_ptr->getFactorList(_fac_list); + if (not c_ptr->isRemoving()) + c_ptr->getFactorList(_fac_list); } void FrameBase::getFactorList(FactorBasePtrList& _fac_list) { for (auto c_ptr : getCaptureList()) - c_ptr->getFactorList(_fac_list); + if (not c_ptr->isRemoving()) + c_ptr->getFactorList(_fac_list); } bool FrameBase::hasCapture(const CaptureBaseConstPtr& _capture) const diff --git a/src/trajectory/trajectory_base.cpp b/src/trajectory/trajectory_base.cpp index 24de3de294a6e65ea409d345a31a23393904ae50..244d6a505d66143823e6a67456c33972ff86a588 100644 --- a/src/trajectory/trajectory_base.cpp +++ b/src/trajectory/trajectory_base.cpp @@ -54,13 +54,15 @@ void TrajectoryBase::removeFrame(FrameBasePtr _frame_ptr) void TrajectoryBase::getFactorList(FactorBaseConstPtrList & _fac_list) const { for(auto fr_pair: frame_map_) - fr_pair.second->getFactorList(_fac_list); + if (not fr_pair.second->isRemoving()) + fr_pair.second->getFactorList(_fac_list); } void TrajectoryBase::getFactorList(FactorBasePtrList & _fac_list) { for(auto fr_pair: frame_map_) - fr_pair.second->getFactorList(_fac_list); + if (not fr_pair.second->isRemoving()) + fr_pair.second->getFactorList(_fac_list); } TimeStamp TrajectoryBase::closestTimeStampToTimeStamp(const TimeStamp& _ts) const