Commit 0557cad2 authored by hengli's avatar hengli

Enabled blending in overlay rendering, and fixed bug in individual setting of overlay visibility.

No related merge requests found
......@@ -150,6 +150,8 @@ GLOverlayGeode::GLOverlayDrawable::drawImplementation(osg::RenderInfo&) const
glMatrixMode(GL_MODELVIEW);
glDisable(GL_LIGHTING);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glPushMatrix();
glScalef(-1.0f, 1.0f, -1.0f);
......@@ -404,6 +406,7 @@ GLOverlayGeode::GLOverlayDrawable::drawImplementation(osg::RenderInfo&) const
glPopMatrix();
glEnable(GL_LIGHTING);
glDisable(GL_BLEND);
}
osg::BoundingBox
......
#include "SystemViewParams.h"
#include <QCheckBox>
SystemViewParams::SystemViewParams(int systemId)
: mSystemId(systemId)
, mColorPointCloudByDistance(false)
......@@ -240,14 +242,17 @@ SystemViewParams::toggleObstacleList(int state)
}
void
SystemViewParams::toggleOverlay(const QString& name)
SystemViewParams::toggleOverlay(QWidget* widget)
{
const QCheckBox* checkbox = dynamic_cast<QCheckBox*>(widget);
QString name = checkbox->accessibleName();
if (!mDisplayOverlay.contains(name))
{
return;
}
mDisplayOverlay[name] = !mDisplayOverlay[name];
mDisplayOverlay[name] = (checkbox->checkState() == Qt::Checked);
}
void
......
......@@ -5,6 +5,7 @@
#include <QObject>
#include <QSharedPointer>
#include <QVector>
#include <QWidget>
class SystemViewParams : public QObject
{
......@@ -61,7 +62,7 @@ public slots:
void toggleColorPointCloud(int state);
void toggleLocalGrid(int state);
void toggleObstacleList(int state);
void toggleOverlay(const QString& name);
void toggleOverlay(QWidget* widget);
void togglePlannedPath(int state);
void togglePointCloud(int state);
void toggleRGBD(int state);
......
......@@ -65,14 +65,16 @@ ViewParamWidget::overlayCreated(int systemId, const QString& name)
systemViewParams->displayOverlay().insert(name, true);
QCheckBox* checkbox = new QCheckBox(this);
checkbox->setAccessibleName(name);
checkbox->setChecked(systemViewParams->displayOverlay().value(name));
mOverlayLayout[systemId]->addRow(name, checkbox);
mOverlaySignalMapper->setMapping(checkbox, name);
mOverlaySignalMapper->setMapping(checkbox, checkbox);
connect(checkbox, SIGNAL(clicked()),
mOverlaySignalMapper, SLOT(map()));
connect(mOverlaySignalMapper, SIGNAL(mapped(QString)),
systemViewParams.data(), SLOT(toggleOverlay(QString)));
connect(mOverlaySignalMapper, SIGNAL(mapped(QWidget*)),
systemViewParams.data(), SLOT(toggleOverlay(QWidget*)));
}
void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment