DBViewer: fixed Refine links menu not showing up if there are landmark links

This commit is contained in:
matlabbe
2024-11-14 20:15:04 -08:00
parent fd27380be7
commit 966feefb35

View File

@@ -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)
{ {