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

Merge branch 'fix-remove-in-for' into 'devel'

Bug fixed: remove elements in a for loop

See merge request !294
parents bad49ed2 0ef315c9
No related branches found
No related tags found
1 merge request!294Bug fixed: remove elements in a for loop
Pipeline #3816 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