summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qrendersettings.cpp
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2017-02-17 23:14:27 +0000
committerMike Krus <mike.krus@kdab.com>2017-05-26 09:58:37 +0000
commitcd68b050998200584f2b6a5604a2538a27c77fbe (patch)
tree4db8138b0e4d27d57e1624c06530178580148d9d /src/render/frontend/qrendersettings.cpp
parenta441bd7d3d83284f68f1d8addedc93989a18cfeb (diff)
Add support for line picking
PickingSettings can ask to get line as well as triangle picks. Introduces a radius value to compensate for numerical precision in ray-segment intersections. Introduces QPickLineEvent with the details about the picking. Job will perform line picking if appropriate. Hit encode the type of picking and this is used to generate the right type of event. Task-number: QTBUG-58071 Change-Id: I834e6cc08044a8cfb28bba7443034e05267aedbf 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 b73fed77b..4212897ab 100644
--- a/src/render/frontend/qrendersettings.cpp
+++ b/src/render/frontend/qrendersettings.cpp
@@ -92,6 +92,8 @@ void QRenderSettingsPrivate::init()
q, SLOT(_q_onPickResultModeChanged(QPickingSettings::PickResultMode)));
QObject::connect(&m_pickingSettings, SIGNAL(faceOrientationPickingModeChanged(QPickingSettings::FaceOrientationPickingMode)),
q, SLOT(_q_onFaceOrientationPickingModeChanged(QPickingSettings::FaceOrientationPickingMode)));
+ QObject::connect(&m_pickingSettings, SIGNAL(worldSpaceToleranceChanged(float)),
+ q, SLOT(_q_onWorldSpaceToleranceChanged(float)));
}
/*! \internal */
@@ -112,6 +114,12 @@ void QRenderSettingsPrivate::_q_onFaceOrientationPickingModeChanged(QPickingSett
notifyPropertyChange("faceOrientationPickingMode", faceOrientationPickingMode);
}
+/*! \internal */
+void QRenderSettingsPrivate::_q_onWorldSpaceToleranceChanged(float worldSpaceTolerance)
+{
+ notifyPropertyChange("pickWorldSpaceTolerance", worldSpaceTolerance);
+}
+
QRenderSettings::QRenderSettings(Qt3DCore::QNode *parent)
: QRenderSettings(*new QRenderSettingsPrivate, parent) {}
@@ -248,6 +256,7 @@ Qt3DCore::QNodeCreatedChangeBasePtr QRenderSettings::createNodeCreationChange()
data.pickMethod = d->m_pickingSettings.pickMethod();
data.pickResultMode = d->m_pickingSettings.pickResultMode();
data.faceOrientationPickingMode = d->m_pickingSettings.faceOrientationPickingMode();
+ data.pickWorldSpaceTolerance = d->m_pickingSettings.worldSpaceTolerance();
return creationChange;
}