From 6dca03621d1e5316a795cff646f0f7c34515ff8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu> Date: Fri, 31 May 2019 16:29:27 +0200 Subject: [PATCH] bug fixes --- src/factor/factor_base.cpp | 2 +- src/processor/track_matrix.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/factor/factor_base.cpp b/src/factor/factor_base.cpp index bd5751fa8..11df542fb 100644 --- a/src/factor/factor_base.cpp +++ b/src/factor/factor_base.cpp @@ -138,7 +138,7 @@ void FactorBase::setStatus(FactorStatus _status) void FactorBase::link(FeatureBasePtr _ftr_ptr) { - if (this->getFeature() != _ftr_ptr) + if (this->getFeature() && this->getFeature() != _ftr_ptr) unlink(); if(_ftr_ptr) diff --git a/src/processor/track_matrix.cpp b/src/processor/track_matrix.cpp index 9b5a4fa25..e38d33f31 100644 --- a/src/processor/track_matrix.cpp +++ b/src/processor/track_matrix.cpp @@ -46,9 +46,10 @@ void TrackMatrix::newTrack(FeatureBasePtr _ftr) void TrackMatrix::add(const SizeStd& _track_id, const FeatureBasePtr& _ftr) { - assert( tracks_.count(_track_id) != 0 && "Provided track ID does not exist. Use newTrack() instead."); + assert(( tracks_.count(_track_id) != 0 || _track_id == track_id_count_) && "Provided track ID does not exist. Use newTrack() instead."); assert( _ftr->getCapture() != nullptr && "adding a feature not linked to any capture"); + _ftr->setTrackId(_track_id); tracks_[_track_id].emplace(_ftr->getCapture()->getTimeStamp(), _ftr); snapshots_[_ftr->getCapture()->id()].emplace(_track_id, _ftr); // will create new snapshot if _cap_id is not present } -- GitLab