mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
DBViewer: fixed Refine links menu not showing up if there are landmark links
This commit is contained in:
@@ -4440,15 +4440,18 @@ void DatabaseViewer::refineLinks()
|
|||||||
std::multimap<int, Link> allLinks = updateLinksWithModifications(links_);
|
std::multimap<int, Link> allLinks = updateLinksWithModifications(links_);
|
||||||
for(std::multimap<int, Link>::iterator iter=allLinks.begin(); iter!=allLinks.end(); ++iter)
|
for(std::multimap<int, Link>::iterator iter=allLinks.begin(); iter!=allLinks.end(); ++iter)
|
||||||
{
|
{
|
||||||
int minId = iter->second.from()>iter->second.to()?iter->second.to():iter->second.from();
|
if(iter->second.type() < Link::kPosePrior)
|
||||||
int maxId = iter->second.from()<iter->second.to()?iter->second.to():iter->second.from();
|
|
||||||
if(minNodeId == 0 || minNodeId > minId)
|
|
||||||
{
|
{
|
||||||
minNodeId = minId;
|
int minId = iter->second.from()>iter->second.to()?iter->second.to():iter->second.from();
|
||||||
}
|
int maxId = iter->second.from()<iter->second.to()?iter->second.to():iter->second.from();
|
||||||
if(maxNodeId == 0 || maxNodeId < maxId)
|
if(minNodeId == 0 || minNodeId > minId)
|
||||||
{
|
{
|
||||||
maxNodeId = maxId;
|
minNodeId = minId;
|
||||||
|
}
|
||||||
|
if(maxNodeId == 0 || maxNodeId < maxId)
|
||||||
|
{
|
||||||
|
maxNodeId = maxId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(minNodeId > 0)
|
if(minNodeId > 0)
|
||||||
@@ -4472,7 +4475,8 @@ void DatabaseViewer::refineLinks()
|
|||||||
linkRefiningDialog_->getIntraInterSessions(intra, inter);
|
linkRefiningDialog_->getIntraInterSessions(intra, inter);
|
||||||
for(std::multimap<int, Link>::iterator iter=allLinks.begin(); iter!=allLinks.end(); ++iter)
|
for(std::multimap<int, Link>::iterator iter=allLinks.begin(); iter!=allLinks.end(); ++iter)
|
||||||
{
|
{
|
||||||
if(type==Link::kEnd || type == iter->second.type())
|
if(iter->second.type() < Link::kPosePrior &&
|
||||||
|
(type==Link::kEnd || type == iter->second.type()))
|
||||||
{
|
{
|
||||||
int from = iter->second.from();
|
int from = iter->second.from();
|
||||||
int to = iter->second.to();
|
int to = iter->second.to();
|
||||||
@@ -4502,6 +4506,10 @@ void DatabaseViewer::refineLinks()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UWARN("No links can be refined!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void DatabaseViewer::refineLinks(const QList<Link> & links)
|
void DatabaseViewer::refineLinks(const QList<Link> & links)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user