summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2016-03-02 22:06:42 +0000
committerMike Krus <mike.krus@kdab.com>2016-03-05 18:56:19 +0000
commit422d10dfdc42ae4bf903ec778eba690021df764c (patch)
tree3ca658c3375ebae1ddaa0163ddf711718239e29f /src
parentc00cadf3853942721cf8eb79b43cba78ceea658b (diff)
Move QRay3D to Qt3DRender and make private
Change-Id: I30f328e1d71d1c27b6647b63cbf480ea0937dd68 Task-Id: QTBUG-51500 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/core.pri4
-rw-r--r--src/core/services/nullservices_p.h1
-rw-r--r--src/render/backend/triangleboundingvolume.cpp6
-rw-r--r--src/render/backend/triangleboundingvolume_p.h4
-rw-r--r--src/render/frontend/sphere.cpp6
-rw-r--r--src/render/frontend/sphere_p.h2
-rw-r--r--src/render/jobs/pickboundingvolumejob.cpp24
-rw-r--r--src/render/jobs/pickboundingvolumejob_p.h16
-rw-r--r--src/render/raycasting/qabstractcollisionqueryservice_p.h9
-rw-r--r--src/render/raycasting/qboundingvolume_p.h8
-rw-r--r--src/render/raycasting/qray3d.cpp (renamed from src/core/qray3d.cpp)40
-rw-r--r--src/render/raycasting/qray3d_p.h (renamed from src/core/qray3d.h)39
-rw-r--r--src/render/raycasting/qraycastingservice.cpp14
-rw-r--r--src/render/raycasting/qraycastingservice_p.h12
-rw-r--r--src/render/raycasting/raycasting.pri2
15 files changed, 95 insertions, 92 deletions
diff --git a/src/core/core.pri b/src/core/core.pri
index d257a2519..09c98ff39 100644
--- a/src/core/core.pri
+++ b/src/core/core.pri
@@ -31,7 +31,6 @@ HEADERS += \
$$PWD/qlockableobserverinterface_p.h \
$$PWD/qchangearbiter_p.h \
$$PWD/qbackendnodefactory_p.h \
- $$PWD/qray3d.h \
$$PWD/qt3dcore_global_p.h \
$$PWD/qscene_p.h
@@ -49,5 +48,4 @@ SOURCES += \
$$PWD/qpostman.cpp \
$$PWD/qscene.cpp \
$$PWD/qbackendscenepropertychange.cpp \
- $$PWD/qbackendnodefactory.cpp \
- $$PWD/qray3d.cpp
+ $$PWD/qbackendnodefactory.cpp
diff --git a/src/core/services/nullservices_p.h b/src/core/services/nullservices_p.h
index 9e845997d..ed7bd3a39 100644
--- a/src/core/services/nullservices_p.h
+++ b/src/core/services/nullservices_p.h
@@ -52,7 +52,6 @@
//
#include <Qt3DCore/qt3dcore_global.h>
-#include <Qt3DCore/qray3d.h>
#include "qopenglinformationservice_p.h"
#include "qsysteminformationservice_p.h"
diff --git a/src/render/backend/triangleboundingvolume.cpp b/src/render/backend/triangleboundingvolume.cpp
index 7e5aa6e31..dcb539550 100644
--- a/src/render/backend/triangleboundingvolume.cpp
+++ b/src/render/backend/triangleboundingvolume.cpp
@@ -38,7 +38,7 @@
****************************************************************************/
#include "triangleboundingvolume_p.h"
-#include <Qt3DCore/qray3d.h>
+#include <Qt3DRender/private/qray3d_p.h>
QT_BEGIN_NAMESPACE
@@ -48,7 +48,7 @@ namespace Render {
// Note: a, b, c in clockwise order
// RealTime Collision Detection page 192
-bool intersectsSegmentTriangle(const Qt3DCore::QRay3D &ray,
+bool intersectsSegmentTriangle(const QRay3D &ray,
const QVector3D &a,
const QVector3D &b,
const QVector3D &c,
@@ -112,7 +112,7 @@ Qt3DCore::QNodeId TriangleBoundingVolume::id() const
return m_id;
}
-bool TriangleBoundingVolume::intersects(const Qt3DCore::QRay3D &ray, QVector3D *q) const
+bool TriangleBoundingVolume::intersects(const QRay3D &ray, QVector3D *q) const
{
float t = 0.0f;
QVector3D uvw;
diff --git a/src/render/backend/triangleboundingvolume_p.h b/src/render/backend/triangleboundingvolume_p.h
index 4a36caacb..5ce0f1574 100644
--- a/src/render/backend/triangleboundingvolume_p.h
+++ b/src/render/backend/triangleboundingvolume_p.h
@@ -61,7 +61,7 @@ namespace Qt3DRender {
namespace Render {
-Q_AUTOTEST_EXPORT bool intersectsSegmentTriangle(const Qt3DCore::QRay3D &ray,
+Q_AUTOTEST_EXPORT bool intersectsSegmentTriangle(const QRay3D &ray,
const QVector3D &a,
const QVector3D &b,
const QVector3D &c,
@@ -78,7 +78,7 @@ public:
const QVector3D &c);
Qt3DCore::QNodeId id() const Q_DECL_FINAL;
- bool intersects(const Qt3DCore::QRay3D &ray, QVector3D *q) const Q_DECL_FINAL;
+ bool intersects(const QRay3D &ray, QVector3D *q) const Q_DECL_FINAL;
Type type() const Q_DECL_FINAL;
QVector3D a() const;
diff --git a/src/render/frontend/sphere.cpp b/src/render/frontend/sphere.cpp
index 8f2d830cf..3769b7024 100644
--- a/src/render/frontend/sphere.cpp
+++ b/src/render/frontend/sphere.cpp
@@ -39,7 +39,7 @@
#include "sphere_p.h"
-#include <Qt3DCore/qray3d.h>
+#include <Qt3DRender/private/qray3d_p.h>
#include <QPair>
@@ -53,7 +53,7 @@ namespace {
// Intersects ray r = p + td, |d| = 1, with sphere s and, if intersecting,
// returns true and intersection point q; false otherwise
-bool intersectRaySphere(const Qt3DCore::QRay3D &ray, const Qt3DRender::Render::Sphere &s, QVector3D *q = Q_NULLPTR)
+bool intersectRaySphere(const Qt3DRender::QRay3D &ray, const Qt3DRender::Render::Sphere &s, QVector3D *q = Q_NULLPTR)
{
const QVector3D p = ray.origin();
const QVector3D d = ray.direction();
@@ -222,7 +222,7 @@ Qt3DCore::QNodeId Sphere::id() const
return m_id;
}
-bool Sphere::intersects(const Qt3DCore::QRay3D &ray, QVector3D *q) const
+bool Sphere::intersects(const QRay3D &ray, QVector3D *q) const
{
return intersectRaySphere(ray, *this, q);
}
diff --git a/src/render/frontend/sphere_p.h b/src/render/frontend/sphere_p.h
index 72be54ca7..08d1e1696 100644
--- a/src/render/frontend/sphere_p.h
+++ b/src/render/frontend/sphere_p.h
@@ -106,7 +106,7 @@ public:
}
Qt3DCore::QNodeId id() const Q_DECL_FINAL;
- bool intersects(const Qt3DCore::QRay3D &ray, QVector3D *q) const Q_DECL_FINAL;
+ bool intersects(const QRay3D &ray, QVector3D *q) const Q_DECL_FINAL;
Type type() const Q_DECL_FINAL;
static Sphere fromPoints(const QVector<QVector3D> &points);
diff --git a/src/render/jobs/pickboundingvolumejob.cpp b/src/render/jobs/pickboundingvolumejob.cpp
index 59dee252e..dcfd545aa 100644
--- a/src/render/jobs/pickboundingvolumejob.cpp
+++ b/src/render/jobs/pickboundingvolumejob.cpp
@@ -53,9 +53,9 @@
#include <Qt3DRender/private/trianglesvisitor_p.h>
#include <Qt3DRender/private/triangleboundingvolume_p.h>
#include <Qt3DRender/private/qraycastingservice_p.h>
+#include <Qt3DRender/private/qray3d_p.h>
#include <Qt3DRender/qgeometryrenderer.h>
#include <Qt3DCore/private/qservicelocator_p.h>
-#include <Qt3DCore/qray3d.h>
#include <QSurface>
#include <Qt3DRender/private/job_common_p.h>
@@ -171,10 +171,10 @@ public:
typedef QVector<QCollisionQueryResult::Hit> HitList;
HitList hits;
- CollisionVisitor(NodeManagers* manager, const Entity *root, const Qt3DCore::QRay3D& ray) : TrianglesVisitor(manager), m_root(root), m_ray(ray), m_triangleIndex(0) { }
+ CollisionVisitor(NodeManagers* manager, const Entity *root, const QRay3D& ray) : TrianglesVisitor(manager), m_root(root), m_ray(ray), m_triangleIndex(0) { }
private:
const Entity *m_root;
- Qt3DCore::QRay3D m_ray;
+ QRay3D m_ray;
Qt3DRender::QRayCastingService rayCasting;
uint m_triangleIndex;
@@ -202,7 +202,7 @@ struct CollisionGathererFunctor
{
CollisionGathererFunctor() : m_renderer(0) { }
Renderer *m_renderer;
- Qt3DCore::QRay3D m_ray;
+ QRay3D m_ray;
typedef CollisionVisitor::HitList result_type;
@@ -297,16 +297,16 @@ void PickBoundingVolumeJob::setRoot(Entity *root)
m_node = root;
}
-Qt3DCore::QRay3D PickBoundingVolumeJob::intersectionRay(const QPoint &pos, const QMatrix4x4 &viewMatrix, const QMatrix4x4 &projectionMatrix, const QRect &viewport)
+QRay3D PickBoundingVolumeJob::intersectionRay(const QPoint &pos, const QMatrix4x4 &viewMatrix, const QMatrix4x4 &projectionMatrix, const QRect &viewport)
{
QVector3D nearPos = QVector3D(pos.x(), pos.y(), 0.0f);
nearPos = nearPos.unproject(viewMatrix, projectionMatrix, viewport);
QVector3D farPos = QVector3D(pos.x(), pos.y(), 1.0f);
farPos = farPos.unproject(viewMatrix, projectionMatrix, viewport);
- return Qt3DCore::QRay3D(nearPos,
- (farPos - nearPos).normalized(),
- (farPos - nearPos).length());
+ return QRay3D(nearPos,
+ (farPos - nearPos).normalized(),
+ (farPos - nearPos).length());
}
void PickBoundingVolumeJob::run()
@@ -477,9 +477,9 @@ QRect PickBoundingVolumeJob::windowViewport(const QRectF &relativeViewport) cons
return QRect();
}
-Qt3DCore::QRay3D PickBoundingVolumeJob::rayForViewportAndCamera(const QPoint &pos,
- const QRectF &relativeViewport,
- Qt3DCore::QNodeId cameraId) const
+QRay3D PickBoundingVolumeJob::rayForViewportAndCamera(const QPoint &pos,
+ const QRectF &relativeViewport,
+ Qt3DCore::QNodeId cameraId) const
{
QMatrix4x4 viewMatrix;
QMatrix4x4 projectionMatrix;
@@ -491,7 +491,7 @@ Qt3DCore::QRay3D PickBoundingVolumeJob::rayForViewportAndCamera(const QPoint &po
// // In GL the y is inverted compared to Qt
// const QPoint glCorrectPos = s.isValid() ? QPoint(pos.x(), s.height() - pos.y()) : pos;
const QPoint glCorrectPos = pos;
- const Qt3DCore::QRay3D ray = intersectionRay(glCorrectPos, viewMatrix, projectionMatrix, viewport);
+ const QRay3D ray = intersectionRay(glCorrectPos, viewMatrix, projectionMatrix, viewport);
return ray;
}
diff --git a/src/render/jobs/pickboundingvolumejob_p.h b/src/render/jobs/pickboundingvolumejob_p.h
index 695e8e010..4dd0590d1 100644
--- a/src/render/jobs/pickboundingvolumejob_p.h
+++ b/src/render/jobs/pickboundingvolumejob_p.h
@@ -52,7 +52,7 @@
//
#include <Qt3DCore/qaspectjob.h>
-#include <Qt3DCore/qray3d.h>
+#include <Qt3DRender/private/qray3d_p.h>
#include <Qt3DRender/private/handle_types_p.h>
#include <Qt3DRender/private/qboundingvolumeprovider_p.h>
#include <Qt3DRender/private/qcollisionqueryresult_p.h>
@@ -82,10 +82,10 @@ public:
void setRoot(Entity *root);
- static Qt3DCore::QRay3D intersectionRay(const QPoint &pos,
- const QMatrix4x4 &viewMatrix,
- const QMatrix4x4 &projectionMatrix,
- const QRect &viewport);
+ static QRay3D intersectionRay(const QPoint &pos,
+ const QMatrix4x4 &viewMatrix,
+ const QMatrix4x4 &projectionMatrix,
+ const QRect &viewport);
protected:
void run() Q_DECL_FINAL;
@@ -99,9 +99,9 @@ private:
QMatrix4x4 &viewMatrix,
QMatrix4x4 &projectionMatrix) const;
QRect windowViewport(const QRectF &relativeViewport) const;
- Qt3DCore::QRay3D rayForViewportAndCamera(const QPoint &pos,
- const QRectF &relativeViewport,
- Qt3DCore::QNodeId cameraId) const;
+ QRay3D rayForViewportAndCamera(const QPoint &pos,
+ const QRectF &relativeViewport,
+ Qt3DCore::QNodeId cameraId) const;
void clearPreviouslyHoveredPickers();
HObjectPicker m_currentPicker;
QVector<HObjectPicker> m_hoveredPickers;
diff --git a/src/render/raycasting/qabstractcollisionqueryservice_p.h b/src/render/raycasting/qabstractcollisionqueryservice_p.h
index 9121ab019..a2bb7873b 100644
--- a/src/render/raycasting/qabstractcollisionqueryservice_p.h
+++ b/src/render/raycasting/qabstractcollisionqueryservice_p.h
@@ -61,13 +61,10 @@
QT_BEGIN_NAMESPACE
-namespace Qt3DCore {
-class QRay3D;
-}
-
class QAbstractCollisionQueryServicePrivate;
namespace Qt3DRender {
+class QRay3D;
class QBoundingVolume;
class QBoundingVolumeProvider;
@@ -87,8 +84,8 @@ public:
AllHits
};
- 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 QQueryHandle query(const QRay3D &ray, QueryMode mode, QBoundingVolumeProvider *provider) = 0;
+ virtual QCollisionQueryResult::Hit query(const QRay3D &ray, const QBoundingVolume* volume) = 0;
virtual QCollisionQueryResult fetchResult(const QQueryHandle &handle) = 0;
virtual QVector<QCollisionQueryResult> fetchAllResults() const = 0;
diff --git a/src/render/raycasting/qboundingvolume_p.h b/src/render/raycasting/qboundingvolume_p.h
index 92fe2215d..a8f37addb 100644
--- a/src/render/raycasting/qboundingvolume_p.h
+++ b/src/render/raycasting/qboundingvolume_p.h
@@ -55,12 +55,8 @@
#include <Qt3DCore/qnodeid.h>
QT_BEGIN_NAMESPACE
-
-namespace Qt3DCore {
-class QRay3D;
-}
-
namespace Qt3DRender {
+class QRay3D;
class QT3DRENDERSHARED_EXPORT QBoundingVolume
{
@@ -74,7 +70,7 @@ public:
};
virtual Qt3DCore::QNodeId id() const = 0;
- virtual bool intersects(const Qt3DCore::QRay3D &ray, QVector3D *q = Q_NULLPTR) const = 0;
+ virtual bool intersects(const QRay3D &ray, QVector3D *q = Q_NULLPTR) const = 0;
virtual Type type() const = 0;
};
diff --git a/src/core/qray3d.cpp b/src/render/raycasting/qray3d.cpp
index 2d8cf855c..f48ce903d 100644
--- a/src/core/qray3d.cpp
+++ b/src/render/raycasting/qray3d.cpp
@@ -38,16 +38,16 @@
**
****************************************************************************/
-#include "qray3d.h"
+#include <Qt3DRender/private/qray3d_p.h>
#include <QtCore/qdebug.h>
QT_BEGIN_NAMESPACE
-namespace Qt3DCore {
+namespace Qt3DRender {
/*!
- \class Qt3DCore::QRay3D
- \inmodule Qt3DCore
+ \class Qt3DRender::QRay3D
+ \inmodule Qt3DRender
\brief The QRay3D class defines a directional line in 3D space extending through an origin point.
\since 5.5
\ingroup qt3d
@@ -69,7 +69,7 @@ namespace Qt3DCore {
*/
/*!
- \fn Qt3DCore::QRay3D::QRay3D()
+ \fn Qt3DRender::QRay3D::QRay3D()
Construct a default ray with an origin() of (0, 0, 0), a
direction() of (0, 0, 1) and a distance of 1.
@@ -81,7 +81,7 @@ QRay3D::QRay3D()
}
/*!
- \fn Qt3DCore::QRay3D::QRay3D(const QVector3D &origin, const QVector3D &direction, float distance)
+ \fn Qt3DRender::QRay3D::QRay3D(const QVector3D &origin, const QVector3D &direction, float distance)
Construct a ray given its defining \a origin, \a direction and \a distance.
The \a direction does not need to be normalized.
@@ -103,7 +103,7 @@ QRay3D::~QRay3D()
}
/*!
- \fn QVector3D Qt3DCore::QRay3D::origin() const
+ \fn QVector3D Qt3DRender::QRay3D::origin() const
Returns the origin of this ray. The default value is (0, 0, 0).
@@ -115,7 +115,7 @@ QVector3D QRay3D::origin() const
}
/*!
- \fn void Qt3DCore::QRay3D::setOrigin(const QVector3D &value)
+ \fn void Qt3DRender::QRay3D::setOrigin(const QVector3D &value)
Sets the origin point of this ray to \a value.
@@ -127,7 +127,7 @@ void QRay3D::setOrigin(const QVector3D &value)
}
/*!
- \fn QVector3D Qt3DCore::QRay3D::direction() const
+ \fn QVector3D Qt3DRender::QRay3D::direction() const
Returns the direction vector of this ray. The default value is (0, 0, 1).
@@ -139,7 +139,7 @@ QVector3D QRay3D::direction() const
}
/*!
- \fn void Qt3DCore::QRay3D::setDirection(const QVector3D &direction)
+ \fn void Qt3DRender::QRay3D::setDirection(const QVector3D &direction)
Sets the direction vector of this ray to \a direction.
@@ -219,7 +219,7 @@ bool QRay3D::contains(const QRay3D &ray) const
}
/*!
- \fn QVector3D Qt3DCore::QRay3D::point(float t) const
+ \fn QVector3D Qt3DRender::QRay3D::point(float t) const
Returns the point on the ray defined by moving \a t units
along the ray in the direction of the direction() vector.
@@ -283,7 +283,7 @@ float QRay3D::distance(const QVector3D &point) const
}
/*!
- \fn QRay3D &Qt3DCore::QRay3D::transform(const QMatrix4x4 &matrix)
+ \fn QRay3D &Qt3DRender::QRay3D::transform(const QMatrix4x4 &matrix)
Transforms this ray using \a matrix, replacing origin() and
direction() with the transformed versions.
@@ -292,7 +292,7 @@ float QRay3D::distance(const QVector3D &point) const
*/
/*!
- \fn QRay3D Qt3DCore::QRay3D::transformed(const QMatrix4x4 &matrix) const
+ \fn QRay3D Qt3DRender::QRay3D::transformed(const QMatrix4x4 &matrix) const
Returns a new ray that is formed by transforming origin()
and direction() using \a matrix.
@@ -301,7 +301,7 @@ float QRay3D::distance(const QVector3D &point) const
*/
/*!
- \fn bool Qt3DCore::QRay3D::operator==(const QRay3D &other) const
+ \fn bool Qt3DRender::QRay3D::operator==(const QRay3D &other) const
Returns \c true if this ray is the same as \a other; \c false otherwise.
@@ -309,7 +309,7 @@ float QRay3D::distance(const QVector3D &point) const
*/
/*!
- \fn bool Qt3DCore::QRay3D::operator!=(const QRay3D &other) const
+ \fn bool Qt3DRender::QRay3D::operator!=(const QRay3D &other) const
Returns \c true if this ray is not the same as \a other; \c false otherwise.
@@ -317,8 +317,8 @@ float QRay3D::distance(const QVector3D &point) const
*/
/*!
- \fn bool qFuzzyCompare(const Qt3DCore::QRay3D &ray1, const Qt3DCore::QRay3D &ray2)
- \relates Qt3DCore::QRay3D
+ \fn bool qFuzzyCompare(const Qt3DRender::QRay3D &ray1, const Qt3DRender::QRay3D &ray2)
+ \relates Qt3DRender::QRay3D
Returns \c true if \a ray1 and \a ray2 are almost equal; \c false
otherwise.
@@ -342,7 +342,7 @@ QDebug operator<<(QDebug dbg, const QRay3D &ray)
#ifndef QT_NO_DATASTREAM
/*!
- \relates Qt3DCore::QRay3D
+ \relates Qt3DRender::QRay3D
Writes the given \a ray to the given \a stream and returns a
reference to the stream.
@@ -355,7 +355,7 @@ QDataStream &operator<<(QDataStream &stream, const QRay3D &ray)
}
/*!
- \relates Qt3DCore::QRay3D
+ \relates Qt3DRender::QRay3D
Reads a 3D ray from the given \a stream into the given \a ray
and returns a reference to the stream.
@@ -371,6 +371,6 @@ QDataStream &operator>>(QDataStream &stream, QRay3D &ray)
#endif // QT_NO_DATASTREAM
-} // namespace Qt3DCore
+} // namespace Qt3DRender
QT_END_NAMESPACE
diff --git a/src/core/qray3d.h b/src/render/raycasting/qray3d_p.h
index 6da6b13ae..8ef1e8158 100644
--- a/src/core/qray3d.h
+++ b/src/render/raycasting/qray3d_p.h
@@ -38,18 +38,29 @@
**
****************************************************************************/
-#ifndef QT3DCORE_QRAY3D_H
-#define QT3DCORE_QRAY3D_H
-
-#include <Qt3DCore/qt3dcore_global.h>
+#ifndef QT3DRENDER_QRAY3D_H
+#define QT3DRENDER_QRAY3D_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <Qt3DRender/qt3drender_global.h>
#include <QtGui/qvector3d.h>
#include <QtGui/qmatrix4x4.h>
QT_BEGIN_NAMESPACE
-namespace Qt3DCore {
+namespace Qt3DRender {
-class QT3DCORESHARED_EXPORT QRay3D
+class QT3DRENDERSHARED_EXPORT QRay3D
{
public:
QRay3D();
@@ -88,26 +99,26 @@ private:
};
#ifndef QT_NO_DEBUG_STREAM
-QT3DCORESHARED_EXPORT QDebug operator<<(QDebug dbg, const Qt3DCore::QRay3D &ray);
+QT3DRENDERSHARED_EXPORT QDebug operator<<(QDebug dbg, const QRay3D &ray);
#endif
#ifndef QT_NO_DATASTREAM
-QT3DCORESHARED_EXPORT QDataStream &operator<<(QDataStream &stream, const Qt3DCore::QRay3D &ray);
-QT3DCORESHARED_EXPORT QDataStream &operator>>(QDataStream &stream, Qt3DCore::QRay3D &ray);
+QT3DRENDERSHARED_EXPORT QDataStream &operator<<(QDataStream &stream, const QRay3D &ray);
+QT3DRENDERSHARED_EXPORT QDataStream &operator>>(QDataStream &stream, QRay3D &ray);
#endif
-} // namespace Qt3DCore
+} // namespace Qt3DRender
-Q_DECLARE_TYPEINFO(Qt3DCore::QRay3D, Q_MOVABLE_TYPE);
+Q_DECLARE_TYPEINFO(Qt3DRender::QRay3D, Q_MOVABLE_TYPE);
QT_END_NAMESPACE
-inline bool qFuzzyCompare(const Qt3DCore::QRay3D &ray1, const Qt3DCore::QRay3D &ray2)
+inline bool qFuzzyCompare(const Qt3DRender::QRay3D &ray1, const Qt3DRender::QRay3D &ray2)
{
return qFuzzyCompare(ray1.origin(), ray2.origin()) &&
qFuzzyCompare(ray1.direction(), ray2.direction());
}
-Q_DECLARE_METATYPE(Qt3DCore::QRay3D)
+Q_DECLARE_METATYPE(Qt3DRender::QRay3D)
-#endif // QT3DCORE_QRAY3D_H
+#endif // QT3DRENDER_QRAY3D_H
diff --git a/src/render/raycasting/qraycastingservice.cpp b/src/render/raycasting/qraycastingservice.cpp
index 52937bd8d..3b505b548 100644
--- a/src/render/raycasting/qraycastingservice.cpp
+++ b/src/render/raycasting/qraycastingservice.cpp
@@ -39,7 +39,7 @@
#include "qraycastingservice_p.h"
-#include <Qt3DCore/qray3d.h>
+#include <Qt3DRender/private/qray3d_p.h>
#include <Qt3DRender/private/sphere_p.h>
#include <Qt3DRender/private/qboundingvolumeprovider_p.h>
@@ -74,7 +74,7 @@ bool compareHitsDistance(const Hit &a, const Hit &b)
return a.distance < b.distance;
}
-Hit volumeRayIntersection(const QBoundingVolume *volume, const Qt3DCore::QRay3D &ray)
+Hit volumeRayIntersection(const QBoundingVolume *volume, const QRay3D &ray)
{
Hit hit;
if ((hit.intersects = volume->intersects(ray, &hit.intersection))) {
@@ -105,7 +105,7 @@ QVector<Hit> reduceToAllHits(QVector<Hit> &results, const Hit &intermediate)
struct CollisionGathererFunctor
{
- Qt3DCore::QRay3D ray;
+ QRay3D ray;
typedef Hit result_type;
@@ -118,7 +118,7 @@ struct CollisionGathererFunctor
} // anonymous
-QCollisionQueryResult QRayCastingServicePrivate::collides(const Qt3DCore::QRay3D &ray, QBoundingVolumeProvider *provider,
+QCollisionQueryResult QRayCastingServicePrivate::collides(const QRay3D &ray, QBoundingVolumeProvider *provider,
QAbstractCollisionQueryService::QueryMode mode, const QQueryHandle &handle)
{
Q_Q(QRayCastingService);
@@ -144,7 +144,7 @@ QCollisionQueryResult QRayCastingServicePrivate::collides(const Qt3DCore::QRay3D
return result;
}
-QCollisionQueryResult::Hit QRayCastingServicePrivate::collides(const Qt3DCore::QRay3D &ray, const Qt3DRender::QBoundingVolume *volume)
+QCollisionQueryResult::Hit QRayCastingServicePrivate::collides(const QRay3D &ray, const Qt3DRender::QBoundingVolume *volume)
{
QCollisionQueryResult::Hit result;
Hit hit = volumeRayIntersection(volume, ray);
@@ -168,7 +168,7 @@ QRayCastingService::QRayCastingService()
{
}
-QQueryHandle QRayCastingService::query(const Qt3DCore::QRay3D &ray,
+QQueryHandle QRayCastingService::query(const QRay3D &ray,
QAbstractCollisionQueryService::QueryMode mode,
QBoundingVolumeProvider *provider)
{
@@ -186,7 +186,7 @@ QQueryHandle QRayCastingService::query(const Qt3DCore::QRay3D &ray,
return handle;
}
-QCollisionQueryResult::Hit QRayCastingService::query(const Qt3DCore::QRay3D &ray, const QBoundingVolume *volume)
+QCollisionQueryResult::Hit QRayCastingService::query(const QRay3D &ray, const QBoundingVolume *volume)
{
Q_D(QRayCastingService);
diff --git a/src/render/raycasting/qraycastingservice_p.h b/src/render/raycasting/qraycastingservice_p.h
index 6c88423a7..c02104d7c 100644
--- a/src/render/raycasting/qraycastingservice_p.h
+++ b/src/render/raycasting/qraycastingservice_p.h
@@ -53,7 +53,7 @@
#include <Qt3DCore/qt3dcore_global.h>
#include <Qt3DRender/private/qabstractcollisionqueryservice_p.h>
-#include <Qt3DCore/qray3d.h>
+#include <Qt3DRender/private/qray3d_p.h>
#include <QHash>
#include <QtConcurrent>
@@ -73,8 +73,8 @@ class QT3DRENDERSHARED_EXPORT QRayCastingService : public QAbstractCollisionQuer
public:
QRayCastingService();
- QQueryHandle query(const Qt3DCore::QRay3D &ray, QueryMode mode, QBoundingVolumeProvider *provider) Q_DECL_OVERRIDE;
- QCollisionQueryResult::Hit query(const Qt3DCore::QRay3D &ray, const QBoundingVolume *volume) Q_DECL_OVERRIDE;
+ QQueryHandle query(const QRay3D &ray, QueryMode mode, QBoundingVolumeProvider *provider) Q_DECL_OVERRIDE;
+ QCollisionQueryResult::Hit query(const QRay3D &ray, const QBoundingVolume *volume) Q_DECL_OVERRIDE;
QCollisionQueryResult fetchResult(const QQueryHandle &handle) Q_DECL_OVERRIDE;
QVector<QCollisionQueryResult> fetchAllResults() const Q_DECL_OVERRIDE;
@@ -92,11 +92,11 @@ class QRayCastingServicePrivate : public QAbstractCollisionQueryServicePrivate
public:
QRayCastingServicePrivate(const QString &description);
- QCollisionQueryResult collides(const Qt3DCore::QRay3D &ray,
+ QCollisionQueryResult collides(const QRay3D &ray,
QBoundingVolumeProvider *provider,
QAbstractCollisionQueryService::QueryMode mode,
const QQueryHandle &handle);
- QCollisionQueryResult::Hit collides(const Qt3DCore::QRay3D &ray,
+ QCollisionQueryResult::Hit collides(const QRay3D &ray,
const QBoundingVolume *volume);
Q_DECLARE_PUBLIC(QRayCastingService)
@@ -104,7 +104,7 @@ public:
struct Query
{
QQueryHandle handle;
- Qt3DCore::QRay3D ray;
+ QRay3D ray;
QRayCastingService::QueryMode mode;
};
diff --git a/src/render/raycasting/raycasting.pri b/src/render/raycasting/raycasting.pri
index fdd4be17f..2aeb2a461 100644
--- a/src/render/raycasting/raycasting.pri
+++ b/src/render/raycasting/raycasting.pri
@@ -6,6 +6,7 @@ HEADERS += \
$$PWD/qboundingvolume_p.h \
$$PWD/qboundingvolumeprovider_p.h \
$$PWD/qcollisionqueryresult_p.h \
+ $$PWD/qray3d_p.h \
$$PWD/qraycastingservice_p.h
SOURCES += \
@@ -14,4 +15,5 @@ SOURCES += \
$$PWD/qboundingvolume.cpp \
$$PWD/qboundingvolumeprovider.cpp \
$$PWD/qcollisionqueryresult.cpp \
+ $$PWD/qray3d.cpp \
$$PWD/qraycastingservice.cpp