summaryrefslogtreecommitdiffstats
path: root/src/render/raycasting/qcollisionqueryresult.cpp
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2015-12-08 12:06:12 +0000
committerMike Krus <mike.krus@kdab.com>2016-01-25 09:03:41 +0000
commit4ad00b344bc79e34f2ba2f8355e65c7948791389 (patch)
tree277ff0f997b962ccb6034728e780cbf77f60c643 /src/render/raycasting/qcollisionqueryresult.cpp
parentd798eb52ae1b22fa38d398cdae0012a34cb51922 (diff)
Expose picking details to front end
Intersection (world and local) and distance added to pick event Modified test so that it includes the event Change-Id: I8631d626e5108d2e044374ee3425625f5588c38c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/raycasting/qcollisionqueryresult.cpp')
-rw-r--r--src/render/raycasting/qcollisionqueryresult.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/render/raycasting/qcollisionqueryresult.cpp b/src/render/raycasting/qcollisionqueryresult.cpp
index cf2ea0a9a..e4dc24ebd 100644
--- a/src/render/raycasting/qcollisionqueryresult.cpp
+++ b/src/render/raycasting/qcollisionqueryresult.cpp
@@ -48,13 +48,13 @@ QCollisionQueryResultPrivate::QCollisionQueryResultPrivate()
QCollisionQueryResultPrivate::QCollisionQueryResultPrivate(const QCollisionQueryResultPrivate &copy)
: QSharedData(copy)
, m_handle(copy.m_handle)
- , m_entitiesHit(copy.m_entitiesHit)
+ , m_hits(copy.m_hits)
{
}
-void QCollisionQueryResultPrivate::addEntityHit(const Qt3DCore::QNodeId &entity)
+void QCollisionQueryResultPrivate::addEntityHit(const Qt3DCore::QNodeId &entity, const QVector3D& intersection, float distance)
{
- m_entitiesHit.append(entity);
+ m_hits.append(QCollisionQueryResult::Hit(entity, intersection, distance));
}
void QCollisionQueryResultPrivate::setHandle(const QQueryHandle &handle)
@@ -82,10 +82,19 @@ QCollisionQueryResult &QCollisionQueryResult::operator=(const QCollisionQueryRes
return *this;
}
+QVector<QCollisionQueryResult::Hit> QCollisionQueryResult::hits() const
+{
+ Q_D(const QCollisionQueryResult);
+ return d->m_hits;
+}
+
QVector<Qt3DCore::QNodeId> QCollisionQueryResult::entitiesHit() const
{
Q_D(const QCollisionQueryResult);
- return d->m_entitiesHit;
+ QVector<Qt3DCore::QNodeId> result;
+ Q_FOREACH (const Hit& hit, d->m_hits)
+ result << hit.m_entityId;
+ return result;
}
/*!