summaryrefslogtreecommitdiffstats
path: root/src/render/jobs/raycastingjob_p.h
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2018-01-16 22:02:23 +0000
committerMike Krus <mike.krus@kdab.com>2018-02-01 21:26:06 +0000
commit13791f59f8fe9863fbacb7985d06f29522046bad (patch)
tree790f9c7c178e6b302da440f60a8d7d1f78eed779 /src/render/jobs/raycastingjob_p.h
parent89ec1b820a3be3ab5d3abb408bea4408954e82ac (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.h26
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;
};