Skip to content
Snippets Groups Projects
Commit 0ef315c9 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

bug fixed

parent bad49ed2
No related branches found
No related tags found
1 merge request!294Bug fixed: remove elements in a for loop
Pipeline #3815 passed
......@@ -97,19 +97,22 @@ unsigned int ProcessorTrackerFeature::processKnown()
// Check/correct incoming-origin correspondences
if (origin_ptr_ != nullptr)
{
for (auto feature_in_incoming : known_features_incoming_)
auto ftr_inc_it = known_features_incoming_.begin();
while (ftr_inc_it != known_features_incoming_.end())
{
SizeStd track_id = feature_in_incoming->trackId();
SizeStd track_id = (*ftr_inc_it)->trackId();
FeatureBasePtr feature_in_last = track_matrix_.feature(track_id, last_ptr_);
FeatureBasePtr feature_in_origin = track_matrix_.feature(track_id, origin_ptr_);
if (!correctFeatureDrift(feature_in_origin, feature_in_last, feature_in_incoming))
if (!correctFeatureDrift(feature_in_origin, feature_in_last, (*ftr_inc_it)))
{
// Remove this feature from many places:
matches_last_from_incoming_ .erase (feature_in_incoming); // remove match
track_matrix_ .remove(feature_in_incoming); // remove from track matrix
known_features_incoming_ .remove(feature_in_incoming); // remove from known features list
feature_in_incoming ->remove(); // remove from wolf tree
matches_last_from_incoming_ .erase (*ftr_inc_it); // remove match
track_matrix_ .remove(*ftr_inc_it); // remove from track matrix
ftr_inc_it = known_features_incoming_.erase(ftr_inc_it); // remove from known features list
(*ftr_inc_it)-> remove(); // remove from wolf tree
}
else
ftr_inc_it++;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment