mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-01 17:10:26 +08:00
CloudViewer: fixed save/load background color
This commit is contained in:
@@ -91,7 +91,7 @@ private slots:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cloudViewer_->setBackgroundColor(Qt::black);
|
cloudViewer_->setBackgroundColor(cloudViewer_->getDefaultBackgroundColor());
|
||||||
}
|
}
|
||||||
if(!pose.isNull())
|
if(!pose.isNull())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ public:
|
|||||||
bool getCloudVisibility(const std::string & id);
|
bool getCloudVisibility(const std::string & id);
|
||||||
|
|
||||||
const QMap<std::string, Transform> & getAddedClouds() const {return _addedClouds;} //including meshes
|
const QMap<std::string, Transform> & getAddedClouds() const {return _addedClouds;} //including meshes
|
||||||
|
const QColor & getDefaultBackgroundColor() const;
|
||||||
const QColor & getBackgroundColor() const;
|
const QColor & getBackgroundColor() const;
|
||||||
Transform getTargetPose() const;
|
Transform getTargetPose() const;
|
||||||
void getCameraPosition(
|
void getCameraPosition(
|
||||||
@@ -184,6 +185,7 @@ public:
|
|||||||
void setWorkingDirectory(const QString & path) {_workingDirectory = path;}
|
void setWorkingDirectory(const QString & path) {_workingDirectory = path;}
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
void setDefaultBackgroundColor(const QColor & color);
|
||||||
void setBackgroundColor(const QColor & color);
|
void setBackgroundColor(const QColor & color);
|
||||||
void setCloudVisibility(const std::string & id, bool isVisible);
|
void setCloudVisibility(const std::string & id, bool isVisible);
|
||||||
void setCloudOpacity(const std::string & id, double opacity = 1.0);
|
void setCloudOpacity(const std::string & id, double opacity = 1.0);
|
||||||
@@ -232,7 +234,8 @@ private:
|
|||||||
std::list<std::string> _gridLines;
|
std::list<std::string> _gridLines;
|
||||||
QSet<Qt::Key> _keysPressed;
|
QSet<Qt::Key> _keysPressed;
|
||||||
QString _workingDirectory;
|
QString _workingDirectory;
|
||||||
QColor _backgroundColor;
|
QColor _defaultBgColor;
|
||||||
|
QColor _currentBgColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace rtabmap */
|
} /* namespace rtabmap */
|
||||||
|
|||||||
@@ -76,7 +76,8 @@ CloudViewer::CloudViewer(QWidget *parent) :
|
|||||||
_gridCellCount(50),
|
_gridCellCount(50),
|
||||||
_gridCellSize(1),
|
_gridCellSize(1),
|
||||||
_workingDirectory("."),
|
_workingDirectory("."),
|
||||||
_backgroundColor(Qt::black)
|
_defaultBgColor(Qt::black),
|
||||||
|
_currentBgColor(Qt::black)
|
||||||
{
|
{
|
||||||
this->setMinimumSize(200, 200);
|
this->setMinimumSize(200, 200);
|
||||||
|
|
||||||
@@ -202,7 +203,7 @@ void CloudViewer::saveSettings(QSettings & settings, const QString & group) cons
|
|||||||
settings.setValue("camera_free", this->isCameraFree());
|
settings.setValue("camera_free", this->isCameraFree());
|
||||||
settings.setValue("camera_lockZ", this->isCameraLockZ());
|
settings.setValue("camera_lockZ", this->isCameraLockZ());
|
||||||
|
|
||||||
settings.setValue("bg_color", this->getBackgroundColor());
|
settings.setValue("bg_color", this->getDefaultBackgroundColor());
|
||||||
if(!group.isEmpty())
|
if(!group.isEmpty())
|
||||||
{
|
{
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
@@ -239,7 +240,7 @@ void CloudViewer::loadSettings(QSettings & settings, const QString & group)
|
|||||||
}
|
}
|
||||||
this->setCameraLockZ(settings.value("camera_lockZ", this->isCameraLockZ()).toBool());
|
this->setCameraLockZ(settings.value("camera_lockZ", this->isCameraLockZ()).toBool());
|
||||||
|
|
||||||
this->setBackgroundColor(settings.value("bg_color", this->getBackgroundColor()).value<QColor>());
|
this->setDefaultBackgroundColor(settings.value("bg_color", this->getDefaultBackgroundColor()).value<QColor>());
|
||||||
if(!group.isEmpty())
|
if(!group.isEmpty())
|
||||||
{
|
{
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
@@ -776,14 +777,28 @@ void CloudViewer::updateCameraTargetPosition(const Transform & pose)
|
|||||||
_lastPose = pose;
|
_lastPose = pose;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QColor & CloudViewer::getDefaultBackgroundColor() const
|
||||||
|
{
|
||||||
|
return _defaultBgColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CloudViewer::setDefaultBackgroundColor(const QColor & color)
|
||||||
|
{
|
||||||
|
if(_currentBgColor == _defaultBgColor)
|
||||||
|
{
|
||||||
|
setBackgroundColor(color);
|
||||||
|
}
|
||||||
|
_defaultBgColor = color;
|
||||||
|
}
|
||||||
|
|
||||||
const QColor & CloudViewer::getBackgroundColor() const
|
const QColor & CloudViewer::getBackgroundColor() const
|
||||||
{
|
{
|
||||||
return _backgroundColor;
|
return _currentBgColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CloudViewer::setBackgroundColor(const QColor & color)
|
void CloudViewer::setBackgroundColor(const QColor & color)
|
||||||
{
|
{
|
||||||
_backgroundColor = color;
|
_currentBgColor = color;
|
||||||
_visualizer->setBackgroundColor(color.redF(), color.greenF(), color.blueF());
|
_visualizer->setBackgroundColor(color.redF(), color.greenF(), color.blueF());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1237,9 +1252,12 @@ void CloudViewer::handleAction(QAction * a)
|
|||||||
}
|
}
|
||||||
else if(a == _aSetBackgroundColor)
|
else if(a == _aSetBackgroundColor)
|
||||||
{
|
{
|
||||||
QColor color = this->getBackgroundColor();
|
QColor color = this->getDefaultBackgroundColor();
|
||||||
color = QColorDialog::getColor(color, this);
|
color = QColorDialog::getColor(color, this);
|
||||||
this->setBackgroundColor(color);
|
if(color.isValid())
|
||||||
|
{
|
||||||
|
this->setDefaultBackgroundColor(color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(a == _aLockViewZ)
|
else if(a == _aLockViewZ)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -687,7 +687,7 @@ void MainWindow::processOdometry(const rtabmap::SensorData & data, const rtabmap
|
|||||||
{
|
{
|
||||||
UDEBUG("odom ok");
|
UDEBUG("odom ok");
|
||||||
lostStateChanged = _ui->widget_cloudViewer->getBackgroundColor() == Qt::darkRed;
|
lostStateChanged = _ui->widget_cloudViewer->getBackgroundColor() == Qt::darkRed;
|
||||||
_ui->widget_cloudViewer->setBackgroundColor(Qt::black);
|
_ui->widget_cloudViewer->setBackgroundColor(_ui->widget_cloudViewer->getDefaultBackgroundColor());
|
||||||
_ui->imageView_odometry->setBackgroundBrush(QBrush(Qt::black));
|
_ui->imageView_odometry->setBackgroundBrush(QBrush(Qt::black));
|
||||||
}
|
}
|
||||||
if(info.inliers >= 0)
|
if(info.inliers >= 0)
|
||||||
@@ -3713,7 +3713,7 @@ void MainWindow::clearTheCache()
|
|||||||
_projectionLocalMaps.clear();
|
_projectionLocalMaps.clear();
|
||||||
_ui->widget_cloudViewer->removeAllClouds();
|
_ui->widget_cloudViewer->removeAllClouds();
|
||||||
_ui->widget_cloudViewer->removeAllGraphs();
|
_ui->widget_cloudViewer->removeAllGraphs();
|
||||||
_ui->widget_cloudViewer->setBackgroundColor(Qt::black);
|
_ui->widget_cloudViewer->setBackgroundColor(_ui->widget_cloudViewer->getDefaultBackgroundColor());
|
||||||
_ui->widget_cloudViewer->clearTrajectory();
|
_ui->widget_cloudViewer->clearTrajectory();
|
||||||
_ui->widget_mapVisibility->clear();
|
_ui->widget_mapVisibility->clear();
|
||||||
_currentPosesMap.clear();
|
_currentPosesMap.clear();
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ void OdometryViewer::processData()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->setBackgroundColor(Qt::black);
|
this->setBackgroundColor(this->getDefaultBackgroundColor());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user