From 966feefb35d1313b05ed26946f6e5bab7098b6a6 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Thu, 14 Nov 2024 20:15:04 -0800 Subject: [PATCH] DBViewer: fixed Refine links menu not showing up if there are landmark links --- guilib/src/DatabaseViewer.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/guilib/src/DatabaseViewer.cpp b/guilib/src/DatabaseViewer.cpp index a9543b1f..b781252d 100644 --- a/guilib/src/DatabaseViewer.cpp +++ b/guilib/src/DatabaseViewer.cpp @@ -4440,15 +4440,18 @@ void DatabaseViewer::refineLinks() std::multimap allLinks = updateLinksWithModifications(links_); for(std::multimap::iterator iter=allLinks.begin(); iter!=allLinks.end(); ++iter) { - int minId = iter->second.from()>iter->second.to()?iter->second.to():iter->second.from(); - int maxId = iter->second.from()second.to()?iter->second.to():iter->second.from(); - if(minNodeId == 0 || minNodeId > minId) + if(iter->second.type() < Link::kPosePrior) { - minNodeId = minId; - } - if(maxNodeId == 0 || maxNodeId < maxId) - { - maxNodeId = maxId; + int minId = iter->second.from()>iter->second.to()?iter->second.to():iter->second.from(); + int maxId = iter->second.from()second.to()?iter->second.to():iter->second.from(); + if(minNodeId == 0 || minNodeId > minId) + { + minNodeId = minId; + } + if(maxNodeId == 0 || maxNodeId < maxId) + { + maxNodeId = maxId; + } } } if(minNodeId > 0) @@ -4472,7 +4475,8 @@ void DatabaseViewer::refineLinks() linkRefiningDialog_->getIntraInterSessions(intra, inter); for(std::multimap::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 to = iter->second.to(); @@ -4502,6 +4506,10 @@ void DatabaseViewer::refineLinks() } } } + else + { + UWARN("No links can be refined!"); + } } void DatabaseViewer::refineLinks(const QList & links) {