mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Flann incremental: remove points before adding new ones
This commit is contained in:
@@ -583,6 +583,12 @@ void VWDictionary::update()
|
|||||||
_strategy < kNNBruteForce &&
|
_strategy < kNNBruteForce &&
|
||||||
_visualWords.size())
|
_visualWords.size())
|
||||||
{
|
{
|
||||||
|
for(std::set<int>::iterator iter=_removedIndexedWords.begin(); iter!=_removedIndexedWords.end(); ++iter)
|
||||||
|
{
|
||||||
|
UASSERT(uContains(_mapIdIndex, *iter));
|
||||||
|
_flannIndex->removePoint(_mapIdIndex.at(*iter));
|
||||||
|
}
|
||||||
|
|
||||||
if(_notIndexedWords.size())
|
if(_notIndexedWords.size())
|
||||||
{
|
{
|
||||||
for(std::set<int>::iterator iter=_notIndexedWords.begin(); iter!=_notIndexedWords.end(); ++iter)
|
for(std::set<int>::iterator iter=_notIndexedWords.begin(); iter!=_notIndexedWords.end(); ++iter)
|
||||||
@@ -625,11 +631,6 @@ void VWDictionary::update()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(std::set<int>::iterator iter=_removedIndexedWords.begin(); iter!=_removedIndexedWords.end(); ++iter)
|
|
||||||
{
|
|
||||||
UASSERT(uContains(_mapIdIndex, *iter));
|
|
||||||
_flannIndex->removePoint(_mapIdIndex.at(*iter));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(_strategy >= kNNBruteForce &&
|
else if(_strategy >= kNNBruteForce &&
|
||||||
_notIndexedWords.size() &&
|
_notIndexedWords.size() &&
|
||||||
|
|||||||
Reference in New Issue
Block a user