summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dscene.cpp
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-11-05 09:58:44 +0200
committerPasi Keränen <pasi.keranen@digia.com>2013-11-05 13:09:14 +0200
commit91745c4b2f7933dfcb0c9eca28e87ad0fae93e66 (patch)
tree9fe246ed56b81e997f3a37a5d071515268040d5b /src/datavisualization/engine/q3dscene.cpp
parent2cd0924e7f0147ecbba1197f7d0d32260434a2fd (diff)
Add configurable main and slice view ordering.
Change-Id: I9f5d7399d60971c782fa8ac6fc39a05fa3bbcaa8 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/q3dscene.cpp')
-rw-r--r--src/datavisualization/engine/q3dscene.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/datavisualization/engine/q3dscene.cpp b/src/datavisualization/engine/q3dscene.cpp
index 3789ea9f..70c8ffd6 100644
--- a/src/datavisualization/engine/q3dscene.cpp
+++ b/src/datavisualization/engine/q3dscene.cpp
@@ -199,6 +199,26 @@ void Q3DScene::setSlicingActive(bool isSlicing)
}
/*!
+ * \property Q3DScene::secondarySubviewOnTop
+ *
+ * This property contains whether 2D slicing view is currently drawn on top or if the 3D view is drawn on top.
+ */
+bool Q3DScene::isSecondarySubviewOnTop() const
+{
+ return d_ptr->m_isSecondarySubviewOnTop;
+}
+
+void Q3DScene::setSecondarySubviewOnTop(bool isSecondaryOnTop)
+{
+ if (d_ptr->m_isSecondarySubviewOnTop != isSecondaryOnTop) {
+ d_ptr->m_isSecondarySubviewOnTop = isSecondaryOnTop;
+ d_ptr->m_changeTracker.subViewportOrderChanged = true;
+ emit secondarySubviewOnTopChanged(isSecondaryOnTop);
+ emitNeedRender();
+ }
+}
+
+/*!
* \property Q3DScene::activeCamera
*
* This property contains the currently active camera in the 3D scene.
@@ -312,6 +332,7 @@ void Q3DScene::setLightPositionRelativeToCamera(const QVector3D &relativePositio
Q3DScenePrivate::Q3DScenePrivate(Q3DScene *q) :
q_ptr(q),
+ m_isSecondarySubviewOnTop(true),
m_devicePixelRatio(1.f),
m_camera(),
m_light(),
@@ -335,6 +356,11 @@ void Q3DScenePrivate::sync(Q3DScenePrivate &other)
m_changeTracker.viewportChanged = false;
other.m_changeTracker.viewportChanged = false;
}
+ if (m_changeTracker.subViewportOrderChanged) {
+ other.q_ptr->setSecondarySubviewOnTop(q_ptr->isSecondarySubviewOnTop());
+ m_changeTracker.subViewportOrderChanged = false;
+ other.m_changeTracker.subViewportOrderChanged = false;
+ }
if (m_changeTracker.primarySubViewportChanged) {
other.q_ptr->setPrimarySubViewport(q_ptr->primarySubViewport());
m_changeTracker.primarySubViewportChanged = false;