summaryrefslogtreecommitdiffstats
path: root/src/render/jobs
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2015-12-03 14:49:40 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-12-10 17:44:50 +0000
commit5bab5d2f9023ecda899a2eb5b074e1e91cfb8045 (patch)
treee08d81fe1ef3a58c16714e3fd3f7be1a9c7230fc /src/render/jobs
parent04da7188665ce6f9550807e5cd9c52e3fa717745 (diff)
Move all raycasting code as private in Qt3DRender
Change-Id: I871cbc57166493f30ea307305d8664e2f8a8873f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/jobs')
-rw-r--r--src/render/jobs/pickboundingvolumejob.cpp49
-rw-r--r--src/render/jobs/pickboundingvolumejob_p.h11
2 files changed, 30 insertions, 30 deletions
diff --git a/src/render/jobs/pickboundingvolumejob.cpp b/src/render/jobs/pickboundingvolumejob.cpp
index 1dc0b2575..768277ad4 100644
--- a/src/render/jobs/pickboundingvolumejob.cpp
+++ b/src/render/jobs/pickboundingvolumejob.cpp
@@ -48,11 +48,10 @@
#include <Qt3DRender/private/geometryrenderer_p.h>
#include <Qt3DRender/private/trianglesextractor_p.h>
#include <Qt3DRender/private/triangleboundingvolume_p.h>
-#include <Qt3DRender/qraycastingservice.h>
+#include <Qt3DRender/private/qraycastingservice_p.h>
#include <Qt3DRender/qgeometryrenderer.h>
#include <Qt3DCore/qservicelocator.h>
#include <Qt3DCore/qray3d.h>
-#include <Qt3DCore/qabstractcollisionqueryservice.h>
#include <QSurface>
QT_BEGIN_NAMESPACE
@@ -124,9 +123,9 @@ public:
};
-QVector<Qt3DCore::QBoundingVolume *> gatherBoundingVolumes(Entity *entity)
+QVector<QBoundingVolume *> gatherBoundingVolumes(Entity *entity)
{
- QVector<Qt3DCore::QBoundingVolume *> volumes;
+ QVector<QBoundingVolume *> volumes;
if (entity != Q_NULLPTR) {
volumes.push_back(entity->worldBoundingVolume());
@@ -137,17 +136,17 @@ QVector<Qt3DCore::QBoundingVolume *> gatherBoundingVolumes(Entity *entity)
return volumes;
}
-class SphereBoundingVolumesGatherer : public Qt3DCore::QBoundingVolumeProvider
+class SphereBoundingVolumesGatherer : public QBoundingVolumeProvider
{
public:
explicit SphereBoundingVolumesGatherer(Entity *root)
- : Qt3DCore::QBoundingVolumeProvider()
+ : QBoundingVolumeProvider()
, m_root(root)
, m_needsRefresh(true)
{
}
- QVector<Qt3DCore::QBoundingVolume *> boundingVolumes() const Q_DECL_FINAL
+ QVector<QBoundingVolume *> boundingVolumes() const Q_DECL_FINAL
{
if (m_needsRefresh) {
m_volumes = gatherBoundingVolumes(m_root);
@@ -158,16 +157,16 @@ public:
private:
Entity *m_root;
- mutable QVector<Qt3DCore::QBoundingVolume *> m_volumes;
+ mutable QVector<QBoundingVolume *> m_volumes;
mutable bool m_needsRefresh;
};
-class TriangleVolumeGatherer : public Qt3DCore::QBoundingVolumeProvider
+class TriangleVolumeGatherer : public QBoundingVolumeProvider
{
public:
explicit TriangleVolumeGatherer(Entity *root, NodeManagers *manager)
- : Qt3DCore::QBoundingVolumeProvider()
+ : QBoundingVolumeProvider()
, m_root(root)
, m_manager(manager)
{
@@ -179,21 +178,21 @@ public:
qDeleteAll(m_volumes);
}
- QVector<Qt3DCore::QBoundingVolume *> boundingVolumes() const Q_DECL_FINAL
+ QVector<QBoundingVolume *> boundingVolumes() const Q_DECL_FINAL
{
return m_volumes;
}
private:
- QVector<Qt3DCore::QBoundingVolume *> buildTriangleBoundingVolumes()
+ QVector<QBoundingVolume *> buildTriangleBoundingVolumes()
{
- QVector<Qt3DCore::QBoundingVolume *> volumes;
+ QVector<QBoundingVolume *> volumes;
if (m_root) {
GeometryRenderer *gRenderer = m_root->renderComponent<GeometryRenderer>();
if (gRenderer) {
- const QVector<Qt3DCore::QBoundingVolume *> localVolumes = gRenderer->triangleData();
+ const QVector<QBoundingVolume *> localVolumes = gRenderer->triangleData();
volumes.reserve(localVolumes.size());
- Q_FOREACH (const Qt3DCore::QBoundingVolume *v, localVolumes) {
+ Q_FOREACH (const QBoundingVolume *v, localVolumes) {
TriangleBoundingVolume *worldVolume = new TriangleBoundingVolume();
*worldVolume = static_cast<const TriangleBoundingVolume *>(v)->transformed(*m_root->worldTransform());
volumes.push_back(worldVolume);
@@ -205,7 +204,7 @@ private:
Entity *m_root;
NodeManagers *m_manager;
- QVector<Qt3DCore::QBoundingVolume *> m_volumes;
+ QVector<QBoundingVolume *> m_volumes;
};
} // anonymous
@@ -240,7 +239,7 @@ void PickBoundingVolumeJob::run()
if (m_mouseEvents.empty())
return;
- Qt3DCore::QAbstractCollisionQueryService *rayCasting = m_renderer->renderAspect()->services()->service<Qt3DCore::QAbstractCollisionQueryService>
+ QAbstractCollisionQueryService *rayCasting = m_renderer->renderAspect()->services()->service<QAbstractCollisionQueryService>
(Qt3DCore::QServiceLocator::CollisionService);
if (rayCasting == Q_NULLPTR) {
@@ -411,8 +410,8 @@ QRect PickBoundingVolumeJob::windowViewport(const QRectF &relativeViewport) cons
QVector<Qt3DCore::QNodeId> PickBoundingVolumeJob::sphereHitsForViewportAndCamera(const QPoint &pos,
const QRectF &relativeViewport,
const Qt3DCore::QNodeId &cameraId,
- Qt3DCore::QAbstractCollisionQueryService *rayCasting,
- Qt3DCore::QBoundingVolumeProvider *volumeProvider) const
+ QAbstractCollisionQueryService *rayCasting,
+ QBoundingVolumeProvider *volumeProvider) const
{
QMatrix4x4 viewMatrix;
QMatrix4x4 projectionMatrix;
@@ -424,8 +423,8 @@ QVector<Qt3DCore::QNodeId> PickBoundingVolumeJob::sphereHitsForViewportAndCamera
// In GL the y is inverted compared to Qt
const QPoint glCorrectPos = s ? QPoint(pos.x(), s->size().height() - pos.y()) : pos;
const Qt3DCore::QRay3D ray = intersectionRay(glCorrectPos, viewMatrix, projectionMatrix, viewport);
- const Qt3DCore::QQueryHandle rayCastingHandle = rayCasting->query(ray, Qt3DCore::QAbstractCollisionQueryService::AllHits, volumeProvider);
- const Qt3DCore::QCollisionQueryResult queryResult = rayCasting->fetchResult(rayCastingHandle);
+ const QQueryHandle rayCastingHandle = rayCasting->query(ray, QAbstractCollisionQueryService::AllHits, volumeProvider);
+ const QCollisionQueryResult queryResult = rayCasting->fetchResult(rayCastingHandle);
return queryResult.entitiesHit();
}
@@ -433,7 +432,7 @@ QVector<Qt3DCore::QNodeId> PickBoundingVolumeJob::triangleHitsForViewportAndCame
const QRectF &relativeViewport,
const Qt3DCore::QNodeId &cameraId,
const Qt3DCore::QNodeId &entityId,
- Qt3DCore::QAbstractCollisionQueryService *rayCasting) const
+ QAbstractCollisionQueryService *rayCasting) const
{
QMatrix4x4 viewMatrix;
QMatrix4x4 projectionMatrix;
@@ -450,10 +449,10 @@ QVector<Qt3DCore::QNodeId> PickBoundingVolumeJob::triangleHitsForViewportAndCame
TriangleVolumeGatherer boundingVolumeProvider(m_manager->lookupResource<Entity, EntityManager>(entityId),
m_manager);
- const Qt3DCore::QQueryHandle rayCastingHandle = rayCasting->query(ray,
- Qt3DCore::QAbstractCollisionQueryService::AllHits,
+ const QQueryHandle rayCastingHandle = rayCasting->query(ray,
+ QAbstractCollisionQueryService::AllHits,
&boundingVolumeProvider);
- const Qt3DCore::QCollisionQueryResult queryResult = rayCasting->fetchResult(rayCastingHandle);
+ const QCollisionQueryResult queryResult = rayCasting->fetchResult(rayCastingHandle);
return queryResult.entitiesHit();
}
diff --git a/src/render/jobs/pickboundingvolumejob_p.h b/src/render/jobs/pickboundingvolumejob_p.h
index 685638a58..11a7a1596 100644
--- a/src/render/jobs/pickboundingvolumejob_p.h
+++ b/src/render/jobs/pickboundingvolumejob_p.h
@@ -49,7 +49,7 @@
//
#include <Qt3DCore/qaspectjob.h>
-#include <Qt3DCore/qboundingvolumeprovider.h>
+#include <Qt3DRender/private/qboundingvolumeprovider_p.h>
#include <Qt3DRender/private/handle_types_p.h>
#include <Qt3DCore/qray3d.h>
#include <QSharedPointer>
@@ -59,11 +59,12 @@ QT_BEGIN_NAMESPACE
namespace Qt3DCore {
class QNodeId;
-class QAbstractCollisionQueryService;
}
namespace Qt3DRender {
+class QAbstractCollisionQueryService;
+
namespace Render {
class Entity;
@@ -97,13 +98,13 @@ private:
QVector<Qt3DCore::QNodeId> sphereHitsForViewportAndCamera(const QPoint &pos,
const QRectF &relativeViewport,
const Qt3DCore::QNodeId &cameraId,
- Qt3DCore::QAbstractCollisionQueryService *rayCasting,
- Qt3DCore::QBoundingVolumeProvider *volumeProvider) const;
+ Qt3DRender::QAbstractCollisionQueryService *rayCasting,
+ Qt3DRender::QBoundingVolumeProvider *volumeProvider) const;
QVector<Qt3DCore::QNodeId> triangleHitsForViewportAndCamera(const QPoint &pos,
const QRectF &relativeViewport,
const Qt3DCore::QNodeId &cameraId,
const Qt3DCore::QNodeId &entityId,
- Qt3DCore::QAbstractCollisionQueryService *rayCasting) const;
+ Qt3DRender::QAbstractCollisionQueryService *rayCasting) const;
void clearPreviouslyHoveredPickers();
HObjectPicker m_currentPicker;
QVector<HObjectPicker> m_hoveredPickers;