DbViewer: added option to ignore landmarks. Show landmark id in Constraints View.

This commit is contained in:
matlabbe
2020-10-12 15:29:20 -04:00
parent 3aae79270f
commit 0e5ec91280
2 changed files with 34 additions and 10 deletions

View File

@@ -378,6 +378,7 @@ DatabaseViewer::DatabaseViewer(const QString & ini, QWidget * parent) :
connect(ui_->checkBox_ignoreLocalLoopSpace, SIGNAL(stateChanged(int)), this, SLOT(updateGraphView()));
connect(ui_->checkBox_ignoreLocalLoopTime, SIGNAL(stateChanged(int)), this, SLOT(updateGraphView()));
connect(ui_->checkBox_ignoreUserLoop, SIGNAL(stateChanged(int)), this, SLOT(updateGraphView()));
connect(ui_->checkBox_ignoreLandmarks, SIGNAL(stateChanged(int)), this, SLOT(updateGraphView()));
connect(ui_->doubleSpinBox_optimizationScale, SIGNAL(editingFinished()), this, SLOT(updateGraphView()));
connect(ui_->checkBox_octomap, SIGNAL(stateChanged(int)), this, SLOT(updateGrid()));
connect(ui_->checkBox_grid_2d, SIGNAL(stateChanged(int)), this, SLOT(updateGrid()));
@@ -708,6 +709,7 @@ void DatabaseViewer::restoreDefaultSettings()
ui_->checkBox_ignoreLocalLoopSpace->setChecked(false);
ui_->checkBox_ignoreLocalLoopTime->setChecked(false);
ui_->checkBox_ignoreUserLoop->setChecked(false);
ui_->checkBox_ignoreLandmarks->setChecked(false);
ui_->doubleSpinBox_optimizationScale->setValue(1.0);
ui_->doubleSpinBox_gainCompensationRadius->setValue(0.0);
ui_->doubleSpinBox_voxelSize->setValue(0.0);
@@ -5440,7 +5442,7 @@ void DatabaseViewer::updateConstraintView(
link.type()==Link::kNeighborMerged?"Merged neighbor":
link.type()==Link::kGlobalClosure?"Loop closure":
link.type()==Link::kLocalSpaceClosure?"Space proximity link":
link.type()==Link::kLocalTimeClosure?"Time proximity link":
link.type()==Link::kLocalTimeClosure?"Time proximity link":
link.type()==Link::kUserClosure?"User link":
link.type()==Link::kLandmark?"Landmark "+QString::number(-link.to()):
link.type()==Link::kVirtualClosure?"Virtual link":
@@ -6569,6 +6571,11 @@ void DatabaseViewer::updateGraphView()
loopLinks_.push_back(iter->second);
++totalUser;
}
else if(iter->second.type() == Link::kLandmark)
{
if(ui_->checkBox_ignoreLandmarks->isChecked())
{
links.erase(iter++);
continue;
}
UASSERT(iter->second.from() > 0 && iter->second.to() < 0);

View File

@@ -61,7 +61,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>306</width>
<width>414</width>
<height>311</height>
</rect>
</property>
@@ -304,7 +304,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>306</width>
<width>413</width>
<height>311</height>
</rect>
</property>
@@ -1379,7 +1379,7 @@
<item>
<widget class="QToolBox" name="toolBox">
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="page_3">
<property name="geometry">
@@ -1387,7 +1387,7 @@
<x>0</x>
<y>0</y>
<width>318</width>
<height>165</height>
<height>226</height>
</rect>
</property>
<attribute name="label">
@@ -1455,7 +1455,7 @@
</property>
</widget>
</item>
<item row="6" column="0">
<item row="7" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -1518,6 +1518,23 @@
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QLabel" name="label_58">
<property name="text">
<string>Ignore landmarks</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="checkBox_ignoreLandmarks">
<property name="text">
<string/>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_4">
@@ -2079,8 +2096,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>226</width>
<height>160</height>
<width>312</width>
<height>226</height>
</rect>
</property>
<attribute name="label">
@@ -2207,8 +2224,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>185</width>
<height>485</height>
<width>446</width>
<height>226</height>
</rect>
</property>
<attribute name="label">