Commit 0557cad2 authored by hengli's avatar hengli

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

parent 5348f704
...@@ -150,6 +150,8 @@ GLOverlayGeode::GLOverlayDrawable::drawImplementation(osg::RenderInfo&) const ...@@ -150,6 +150,8 @@ GLOverlayGeode::GLOverlayDrawable::drawImplementation(osg::RenderInfo&) const
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glPushMatrix(); glPushMatrix();
glScalef(-1.0f, 1.0f, -1.0f); glScalef(-1.0f, 1.0f, -1.0f);
...@@ -404,6 +406,7 @@ GLOverlayGeode::GLOverlayDrawable::drawImplementation(osg::RenderInfo&) const ...@@ -404,6 +406,7 @@ GLOverlayGeode::GLOverlayDrawable::drawImplementation(osg::RenderInfo&) const
glPopMatrix(); glPopMatrix();
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
glDisable(GL_BLEND);
} }
osg::BoundingBox osg::BoundingBox
......
#include "SystemViewParams.h" #include "SystemViewParams.h"
#include <QCheckBox>
SystemViewParams::SystemViewParams(int systemId) SystemViewParams::SystemViewParams(int systemId)
: mSystemId(systemId) : mSystemId(systemId)
, mColorPointCloudByDistance(false) , mColorPointCloudByDistance(false)
...@@ -240,14 +242,17 @@ SystemViewParams::toggleObstacleList(int state) ...@@ -240,14 +242,17 @@ SystemViewParams::toggleObstacleList(int state)
} }
void 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)) if (!mDisplayOverlay.contains(name))
{ {
return; return;
} }
mDisplayOverlay[name] = !mDisplayOverlay[name]; mDisplayOverlay[name] = (checkbox->checkState() == Qt::Checked);
} }
void void
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include <QObject> #include <QObject>
#include <QSharedPointer> #include <QSharedPointer>
#include <QVector> #include <QVector>
#include <QWidget>
class SystemViewParams : public QObject class SystemViewParams : public QObject
{ {
...@@ -61,7 +62,7 @@ public slots: ...@@ -61,7 +62,7 @@ public slots:
void toggleColorPointCloud(int state); void toggleColorPointCloud(int state);
void toggleLocalGrid(int state); void toggleLocalGrid(int state);
void toggleObstacleList(int state); void toggleObstacleList(int state);
void toggleOverlay(const QString& name); void toggleOverlay(QWidget* widget);
void togglePlannedPath(int state); void togglePlannedPath(int state);
void togglePointCloud(int state); void togglePointCloud(int state);
void toggleRGBD(int state); void toggleRGBD(int state);
......
...@@ -65,14 +65,16 @@ ViewParamWidget::overlayCreated(int systemId, const QString& name) ...@@ -65,14 +65,16 @@ ViewParamWidget::overlayCreated(int systemId, const QString& name)
systemViewParams->displayOverlay().insert(name, true); systemViewParams->displayOverlay().insert(name, true);
QCheckBox* checkbox = new QCheckBox(this); QCheckBox* checkbox = new QCheckBox(this);
checkbox->setAccessibleName(name);
checkbox->setChecked(systemViewParams->displayOverlay().value(name)); checkbox->setChecked(systemViewParams->displayOverlay().value(name));
mOverlayLayout[systemId]->addRow(name, checkbox); mOverlayLayout[systemId]->addRow(name, checkbox);
mOverlaySignalMapper->setMapping(checkbox, name); mOverlaySignalMapper->setMapping(checkbox, checkbox);
connect(checkbox, SIGNAL(clicked()), connect(checkbox, SIGNAL(clicked()),
mOverlaySignalMapper, SLOT(map())); mOverlaySignalMapper, SLOT(map()));
connect(mOverlaySignalMapper, SIGNAL(mapped(QString)), connect(mOverlaySignalMapper, SIGNAL(mapped(QWidget*)),
systemViewParams.data(), SLOT(toggleOverlay(QString))); systemViewParams.data(), SLOT(toggleOverlay(QWidget*)));
} }
void 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