summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-06-05 13:56:59 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-06-06 06:17:56 +0300
commit4f5546e028c346537df65e3f5977ab7922ccedf2 (patch)
treeaf1e34e9d9104c3bf01b65722a610f063f5a1f93
parent8cd166fe789fa2aa3a40442a31df015f645d32b8 (diff)
Added API for disabling/enabling background
Still to do: new bar objects are needed for disabled background, as current ones do not have bottom (to save in polygon count). Change-Id: I9689fc57314b48b8a6929886d04416bd513ea3dc Change-Id: I9689fc57314b48b8a6929886d04416bd513ea3dc Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r--examples/widget/chart.cpp5
-rw-r--r--examples/widget/chart.h1
-rw-r--r--examples/widget/main.cpp7
-rw-r--r--src/datavis3d/engine/q3dbars.cpp14
-rw-r--r--src/datavis3d/engine/q3dbars.h5
-rw-r--r--src/datavis3d/engine/q3dbars_p.h1
6 files changed, 32 insertions, 1 deletions
diff --git a/examples/widget/chart.cpp b/examples/widget/chart.cpp
index eecae87e..c57a6752 100644
--- a/examples/widget/chart.cpp
+++ b/examples/widget/chart.cpp
@@ -270,6 +270,11 @@ void ChartModifier::changeShadowQuality(int quality)
m_chart->setShadowQuality(sq);
}
+void ChartModifier::setBackgroundEnabled(int enabled)
+{
+ m_chart->setBackgroundEnabled((bool)enabled);
+}
+
void ChartModifier::setGridEnabled(int enabled)
{
m_chart->setGridEnabled((bool)enabled);
diff --git a/examples/widget/chart.h b/examples/widget/chart.h
index 81b123e5..f4ef747b 100644
--- a/examples/widget/chart.h
+++ b/examples/widget/chart.h
@@ -67,6 +67,7 @@ public:
void changeFontSize(int fontsize);
void rotateX(int rotation);
void rotateY(int rotation);
+ void setBackgroundEnabled(int enabled);
void setGridEnabled(int enabled);
void setSpecsX(int barwidth);
void setSpecsZ(int bardepth);
diff --git a/examples/widget/main.cpp b/examples/widget/main.cpp
index 3824f717..1b33b177 100644
--- a/examples/widget/main.cpp
+++ b/examples/widget/main.cpp
@@ -93,6 +93,10 @@ int main(int argc, char **argv)
QPushButton *selectionButton = new QPushButton(widget);
selectionButton->setText(QStringLiteral("Change selection mode"));
+ QCheckBox *backgroundCheckBox = new QCheckBox(widget);
+ backgroundCheckBox->setText(QStringLiteral("Show background"));
+ backgroundCheckBox->setChecked(true);
+
QCheckBox *gridCheckBox = new QCheckBox(widget);
gridCheckBox->setText(QStringLiteral("Show grid"));
gridCheckBox->setChecked(true);
@@ -186,6 +190,7 @@ int main(int argc, char **argv)
vLayout->addWidget(styleButton, 0, Qt::AlignTop);
vLayout->addWidget(cameraButton, 0, Qt::AlignTop);
vLayout->addWidget(selectionButton, 0, Qt::AlignTop);
+ vLayout->addWidget(backgroundCheckBox);
vLayout->addWidget(gridCheckBox);
vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")));
vLayout->addWidget(shadowQuality);
@@ -234,6 +239,8 @@ int main(int argc, char **argv)
QObject::connect(fontList, &QFontComboBox::currentFontChanged, modifier,
&ChartModifier::changeFont);
+ QObject::connect(backgroundCheckBox, &QCheckBox::stateChanged, modifier,
+ &ChartModifier::setBackgroundEnabled);
QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier,
&ChartModifier::setGridEnabled);
diff --git a/src/datavis3d/engine/q3dbars.cpp b/src/datavis3d/engine/q3dbars.cpp
index c79076ee..fea94739 100644
--- a/src/datavis3d/engine/q3dbars.cpp
+++ b/src/datavis3d/engine/q3dbars.cpp
@@ -951,7 +951,7 @@ void Q3DBars::drawScene()
glCullFace(GL_BACK);
// Draw background
- if (d_ptr->m_backgroundObj) {
+ if (d_ptr->m_bgrEnabled && d_ptr->m_backgroundObj) {
QMatrix4x4 modelMatrix;
QMatrix4x4 MVPMatrix;
QMatrix4x4 depthMVPMatrix;
@@ -1852,6 +1852,17 @@ bool Q3DBars::gridEnabled()
return d_ptr->m_gridEnabled;
}
+void Q3DBars::setBackgroundEnabled(bool enable)
+{
+ d_ptr->m_bgrEnabled = enable;
+ // TODO: If disabled (and we have negative values), we need bar objects with bottoms
+}
+
+bool Q3DBars::backgroundEnabled()
+{
+ return d_ptr->m_bgrEnabled;
+}
+
void Q3DBars::setShadowQuality(ShadowQuality quality)
{
d_ptr->m_shadowQuality = quality;
@@ -2108,6 +2119,7 @@ Q3DBarsPrivate::Q3DBarsPrivate(Q3DBars *q)
m_selectionDepthBuffer(0),
m_updateLabels(false),
m_gridEnabled(true),
+ m_bgrEnabled(true),
m_shadowQuality(ShadowLow),
m_shadowQualityToShader(33.3f),
m_tickCount(0),
diff --git a/src/datavis3d/engine/q3dbars.h b/src/datavis3d/engine/q3dbars.h
index 83f60842..265df734 100644
--- a/src/datavis3d/engine/q3dbars.h
+++ b/src/datavis3d/engine/q3dbars.h
@@ -65,6 +65,7 @@ class QTENTERPRISE_DATAVIS3D_EXPORT Q3DBars : public Q3DWindow
Q_PROPERTY(QFont font READ font WRITE setFont)
Q_PROPERTY(float fontSize READ fontSize WRITE setFontSize)
Q_PROPERTY(bool grid READ gridEnabled WRITE setGridEnabled)
+ Q_PROPERTY(bool background READ backgroundEnabled WRITE setBackgroundEnabled)
public:
explicit Q3DBars();
@@ -164,6 +165,10 @@ public:
void setGridEnabled(bool enable);
bool gridEnabled();
+ // Enable or disable background mesh
+ void setBackgroundEnabled(bool enable);
+ bool backgroundEnabled();
+
// Adjust shadow quality
void setShadowQuality(ShadowQuality quality);
ShadowQuality shadowQuality();
diff --git a/src/datavis3d/engine/q3dbars_p.h b/src/datavis3d/engine/q3dbars_p.h
index 4a0c10d9..33153b60 100644
--- a/src/datavis3d/engine/q3dbars_p.h
+++ b/src/datavis3d/engine/q3dbars_p.h
@@ -175,6 +175,7 @@ public:
GLuint m_selectionDepthBuffer;
bool m_updateLabels;
bool m_gridEnabled;
+ bool m_bgrEnabled;
ShadowQuality m_shadowQuality;
GLfloat m_shadowQualityToShader;
GLint m_tickCount;