diff options
author | Mike Krus <mike.krus@kdab.com> | 2015-12-10 15:58:05 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2016-01-25 14:13:13 +0000 |
commit | 28ec1ca1883e0fe9b8b0e0de4049564ae652bd90 (patch) | |
tree | 3722809fc54b75d08b08fb68bd5d9d56fbe24342 /src/render/raycasting/qabstractcollisionqueryservice_p.h | |
parent | 4ad00b344bc79e34f2ba2f8355e65c7948791389 (diff) |
Refactor picking to use one thread per entity
Added triangle visitor by refactor the triangle volume extractor
Added ability to do a ray intersection with a single volume without using a thread
Added entity collector
Use one thread for each entity
Ignore entities that don’t have a pick object
Removed list of triangle volumes stored on each entity
Use triangle visitor to test each triangle by creating a single volume on the stack
Added triangle and 3 vertex index to the pick event
Change-Id: Id3fd53549bf3ea07805426ef868df174f30e176b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/raycasting/qabstractcollisionqueryservice_p.h')
-rw-r--r-- | src/render/raycasting/qabstractcollisionqueryservice_p.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/render/raycasting/qabstractcollisionqueryservice_p.h b/src/render/raycasting/qabstractcollisionqueryservice_p.h index 051946d5e..524a6d9f9 100644 --- a/src/render/raycasting/qabstractcollisionqueryservice_p.h +++ b/src/render/raycasting/qabstractcollisionqueryservice_p.h @@ -62,8 +62,10 @@ namespace Qt3DCore { class QRay3D; } +class QAbstractCollisionQueryServicePrivate; namespace Qt3DRender { +class QBoundingVolume; class QBoundingVolumeProvider; class QAbstractCollisionQueryServicePrivate : public Qt3DCore::QAbstractServiceProviderPrivate @@ -83,6 +85,7 @@ public: }; virtual QQueryHandle query(const Qt3DCore::QRay3D &ray, QueryMode mode, QBoundingVolumeProvider *provider) = 0; + virtual QCollisionQueryResult::Hit query(const Qt3DCore::QRay3D &ray, const QBoundingVolume* volume) = 0; virtual QCollisionQueryResult fetchResult(const QQueryHandle &handle) = 0; virtual QVector<QCollisionQueryResult> fetchAllResults() const = 0; |