diff options
author | Mike Krus <mike.krus@kdab.com> | 2018-01-16 22:02:23 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2018-02-01 21:26:06 +0000 |
commit | 13791f59f8fe9863fbacb7985d06f29522046bad (patch) | |
tree | 790f9c7c178e6b302da440f60a8d7d1f78eed779 /src/render/jobs/raycastingjob_p.h | |
parent | 89ec1b820a3be3ab5d3abb408bea4408954e82ac (diff) |
Introduce QScreenRayCaster
Split common functionality into abstract base class. Both frontend
classes use the same backend implementation.
Split common pick functionality for the object picking and ray
casting jobs into abstract base class.
Change-Id: Ieb8bdcf65d81db12234841d72c6cb0160e145bf6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/jobs/raycastingjob_p.h')
-rw-r--r-- | src/render/jobs/raycastingjob_p.h | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/src/render/jobs/raycastingjob_p.h b/src/render/jobs/raycastingjob_p.h index 7ae7721d0..0bd8d445a 100644 --- a/src/render/jobs/raycastingjob_p.h +++ b/src/render/jobs/raycastingjob_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DCore/qaspectjob.h> +#include "abstractpickingjob_p.h" #include <Qt3DRender/qpickevent.h> #include <Qt3DRender/private/handle_types_p.h> #include <Qt3DRender/private/qcollisionqueryresult_p.h> @@ -61,45 +61,25 @@ QT_BEGIN_NAMESPACE -namespace Qt3DCore { -class QNodeId; -} - namespace Qt3DRender { namespace Render { -class Entity; -class NodeManagers; -class RenderSettings; -class RayCaster; - namespace PickingUtils { typedef QVector<RayCasting::QCollisionQueryResult::Hit> HitList; } -class Q_AUTOTEST_EXPORT RayCastingJob : public Qt3DCore::QAspectJob +class Q_AUTOTEST_EXPORT RayCastingJob : public AbstractPickingJob { public: RayCastingJob(); - void setRoot(Entity *root); - void setFrameGraphRoot(FrameGraphNode *frameGraphRoot); - void setRenderSettings(RenderSettings *settings); - void setManagers(NodeManagers *manager); - void markCastersDirty(); - bool runHelper(); + bool runHelper() override; protected: - void run() final; void dispatchHits(RayCaster *rayCaster, const PickingUtils::HitList &sphereHits); private: - NodeManagers *m_manager; - Entity *m_node; - FrameGraphNode *m_frameGraphRoot; - RenderSettings *m_renderSettings; - bool m_castersDirty; bool m_oneEnabledAtLeast; }; |