cloudFromDisparity(): adjusting decimation if not valid with current image size. Standalone: ask user to set other parameters to default if some were set on command line.

This commit is contained in:
matlabbe
2017-04-28 11:43:27 -04:00
parent 1ea94c0356
commit 14baca125d
4 changed files with 58 additions and 6 deletions

View File

@@ -131,7 +131,7 @@ public:
rtabmap::ParametersMap getAllParameters() const;
std::string getParameter(const std::string & key) const;
void updateParameters(const ParametersMap & parameters);
void updateParameters(const ParametersMap & parameters, bool setOtherParametersToDefault = false);
//General panel
int getGeneralLoggerLevel() const;

View File

@@ -4081,7 +4081,13 @@ void MainWindow::updateParameters(const ParametersMap & parameters)
_ui->widget_console->appendMsg(msg);
UWARN(msg.toStdString().c_str());
}
_preferencesDialog->updateParameters(parameters);
QMessageBox::StandardButton button = QMessageBox::question(this,
tr("Parameters"),
tr("Some parameters have been set on command line, do you "
"want to set all other RTAB-Map's parameters to default?"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No);
_preferencesDialog->updateParameters(parameters, button==QMessageBox::Yes);
}
}

View File

@@ -2889,7 +2889,7 @@ std::string PreferencesDialog::getParameter(const std::string & key) const
return _parameters.at(key);
}
void PreferencesDialog::updateParameters(const ParametersMap & parameters)
void PreferencesDialog::updateParameters(const ParametersMap & parameters, bool setOtherParametersToDefault)
{
if(parameters.size())
{
@@ -2897,6 +2897,19 @@ void PreferencesDialog::updateParameters(const ParametersMap & parameters)
{
this->setParameter(iter->first, iter->second);
}
if(setOtherParametersToDefault)
{
for(ParametersMap::const_iterator iter=Parameters::getDefaultParameters().begin();
iter!=Parameters::getDefaultParameters().end();
++iter)
{
if(parameters.find(iter->first) == parameters.end() &&
iter->first.compare(Parameters::kRtabmapWorkingDirectory())!=0)
{
this->setParameter(iter->first, iter->second);
}
}
}
if(!this->isVisible())
{
this->writeSettings(getTmpIniFilePath());