summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qrendersettings.cpp
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2016-08-12 15:14:12 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-08-13 15:38:13 +0000
commitc5cf2134956eeb1c7466b502e408192b095fe914 (patch)
tree044c41f2985e45836bcf0f72c35acdda6af122eb /src/render/frontend/qrendersettings.cpp
parent1dc8378aeddc337bfc770f9644b6e2f6343ce7fa (diff)
Enable picking of back facing triangles
Added faceOrientationPickingMode to picking settings, and propagate to ray picking code. Enum can be set to front (default), back or both. Removed use of TriangleBoundingVolume and copied intersection code to avoid changing too much of a call chain that should IMHO be refactored out. Change-Id: I2834f3b1a4147f23e0f52453c8d50c146bc29e10 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/frontend/qrendersettings.cpp')
-rw-r--r--src/render/frontend/qrendersettings.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/render/frontend/qrendersettings.cpp b/src/render/frontend/qrendersettings.cpp
index 715c9cc5e..c15a7810c 100644
--- a/src/render/frontend/qrendersettings.cpp
+++ b/src/render/frontend/qrendersettings.cpp
@@ -68,6 +68,8 @@ void QRenderSettingsPrivate::init()
q, SLOT(_q_onPickingMethodChanged(QPickingSettings::PickMethod)));
QObject::connect(&m_pickingSettings, SIGNAL(pickResultModeChanged(QPickingSettings::PickResultMode)),
q, SLOT(_q_onPickResultModeChanged(QPickingSettings::PickResultMode)));
+ QObject::connect(&m_pickingSettings, SIGNAL(faceOrientationPickingModeChanged(QPickingSettings::FaceOrientationPickingMode)),
+ q, SLOT(_q_onFaceOrientationPickingMode(QPickingSettings::FaceOrientationPickingMode)));
}
/*! \internal */
@@ -82,6 +84,12 @@ void QRenderSettingsPrivate::_q_onPickResultModeChanged(QPickingSettings::PickRe
notifyPropertyChange("pickResultMode", pickResultMode);
}
+/*! \internal */
+void QRenderSettingsPrivate::_q_onFaceOrientationPickingModeChanged(bool faceOrientationPickingMode)
+{
+ notifyPropertyChange("faceOrientationPickingMode", faceOrientationPickingMode);
+}
+
/*!
* The constructor creates a new QRenderSettings::QRenderSettings instance with the
* specified \a parent.
@@ -178,6 +186,7 @@ Qt3DCore::QNodeCreatedChangeBasePtr QRenderSettings::createNodeCreationChange()
data.renderPolicy = d->m_renderPolicy;
data.pickMethod = d->m_pickingSettings.pickMethod();
data.pickResultMode = d->m_pickingSettings.pickResultMode();
+ data.faceOrientationPickingMode = d->m_pickingSettings.faceOrientationPickingMode();
return creationChange;
}