diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-06-05 13:56:59 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-06-06 06:17:56 +0300 |
commit | 4f5546e028c346537df65e3f5977ab7922ccedf2 (patch) | |
tree | af1e34e9d9104c3bf01b65722a610f063f5a1f93 | |
parent | 8cd166fe789fa2aa3a40442a31df015f645d32b8 (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.cpp | 5 | ||||
-rw-r--r-- | examples/widget/chart.h | 1 | ||||
-rw-r--r-- | examples/widget/main.cpp | 7 | ||||
-rw-r--r-- | src/datavis3d/engine/q3dbars.cpp | 14 | ||||
-rw-r--r-- | src/datavis3d/engine/q3dbars.h | 5 | ||||
-rw-r--r-- | src/datavis3d/engine/q3dbars_p.h | 1 |
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; |