diff options
author | Mike Krus <mike.krus@kdab.com> | 2016-08-12 15:14:12 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-08-13 15:38:13 +0000 |
commit | c5cf2134956eeb1c7466b502e408192b095fe914 (patch) | |
tree | 044c41f2985e45836bcf0f72c35acdda6af122eb /src/render/frontend/qrendersettings.cpp | |
parent | 1dc8378aeddc337bfc770f9644b6e2f6343ce7fa (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.cpp | 9 |
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; } |