diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2017-03-15 10:17:05 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-02-02 13:58:34 +0000 |
commit | 437a33de9336a5c50711e63dd6dfcd86ad28d5a5 (patch) | |
tree | 6f6cbf6fa5285a79cda6a849a0b96e744ec840c6 /tests/auto | |
parent | 46319648436814afb5a77755dde6681e304befaf (diff) |
Render: Use SIMD Vectors and Matrices in the backend
Change-Id: I19b3b2f8fcb06eb2bc600ebe370465dd15a8eabc
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto')
22 files changed, 515 insertions, 401 deletions
diff --git a/tests/auto/core/common/common.pri b/tests/auto/core/common/common.pri index 3a85df875..9b761b8e0 100644 --- a/tests/auto/core/common/common.pri +++ b/tests/auto/core/common/common.pri @@ -15,3 +15,13 @@ qtConfig(private_tests) { } QT += core-private 3dcore 3dcore-private + +qtConfig(qt3d-simd-avx2) { + CONFIG += simd + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX2 +} + +qtConfig(qt3d-simd-sse2):!qtConfig(qt3d-simd-avx2) { + CONFIG += simd + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE2 +} diff --git a/tests/auto/core/matrix4x4_avx2/matrix4x4_avx2.pro b/tests/auto/core/matrix4x4_avx2/matrix4x4_avx2.pro index 4a97ab2a9..4db8a1975 100644 --- a/tests/auto/core/matrix4x4_avx2/matrix4x4_avx2.pro +++ b/tests/auto/core/matrix4x4_avx2/matrix4x4_avx2.pro @@ -1,6 +1,6 @@ TARGET = tst_matrix4x4_avx2 CONFIG += testcase -QT += testlib 3dcore 3dcore-private +QT += testlib 3dcore 3dcore-private 3drender-private QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX2 diff --git a/tests/auto/core/matrix4x4_avx2/tst_matrix4x4_avx2.cpp b/tests/auto/core/matrix4x4_avx2/tst_matrix4x4_avx2.cpp index 41b0c535c..144df6711 100644 --- a/tests/auto/core/matrix4x4_avx2/tst_matrix4x4_avx2.cpp +++ b/tests/auto/core/matrix4x4_avx2/tst_matrix4x4_avx2.cpp @@ -28,12 +28,15 @@ #include <QtTest/QtTest> #include <Qt3DCore/private/matrix4x4_avx2_p.h> +#include <Qt3DRender/private/aligned_malloc_p.h> using namespace Qt3DCore; class tst_Matrix4x4_AVX2: public QObject { Q_OBJECT +public: + QT3D_ALIGNED_MALLOC_AND_FREE() private Q_SLOTS: diff --git a/tests/auto/core/vector3d_sse/tst_vector3d_sse.cpp b/tests/auto/core/vector3d_sse/tst_vector3d_sse.cpp index be9fbc347..7ea79a5f5 100644 --- a/tests/auto/core/vector3d_sse/tst_vector3d_sse.cpp +++ b/tests/auto/core/vector3d_sse/tst_vector3d_sse.cpp @@ -668,6 +668,14 @@ private Q_SLOTS: // THEN QVERIFY(v0 == v1); } + { + // GIVEN + Vector3D_SSE v0(6.0f, 6.0f, 6.0f); + Vector3D_SSE v1(6.0f, 6.0f, 6.0f); + + // THEN + QVERIFY(v0 == v1); + } } void checkInequality() @@ -787,11 +795,6 @@ private Q_SLOTS: } } - void checkNormalized() - { - - } - void checkIsNull() { { diff --git a/tests/auto/core/vector4d_sse/tst_vector4d_sse.cpp b/tests/auto/core/vector4d_sse/tst_vector4d_sse.cpp index e7b58c8cf..ed9722ffb 100644 --- a/tests/auto/core/vector4d_sse/tst_vector4d_sse.cpp +++ b/tests/auto/core/vector4d_sse/tst_vector4d_sse.cpp @@ -823,6 +823,98 @@ private Q_SLOTS: QCOMPARE(v0.w(), v1.w()); } } + + void checkLengthSquared() + { + { + // GIVEN + Vector4D_SSE v0(10.0f, 10.0f, 10.0f, 10.0f); + + // THEN + QCOMPARE(v0.lengthSquared(), 400.0f); + } + { + // GIVEN + Vector4D_SSE v0(3.0f, 1.0f, 2.0f, 4.0f); + + // THEN + QCOMPARE(v0.lengthSquared(), 30.0f); + } + } + + void checkLength() + { + { + // GIVEN + Vector4D_SSE v0(3.0f, 0.0f, 0.0f, 0.0f); + + // THEN + QCOMPARE(v0.length(), 3.0f); + } + { + // GIVEN + Vector4D_SSE v0(0.0f, 10.0f, 0.0f, 0.0f); + + // THEN + QCOMPARE(v0.length(), 10.0f); + } + { + // GIVEN + Vector4D_SSE v0(0.0f, 0.0f, 9.0f, 0.0f); + + // THEN + QCOMPARE(v0.length(), 9.0f); + } + { + // GIVEN + Vector4D_SSE v0(0.0f, 0.0f, 0.0f, 8.0f); + + // THEN + QCOMPARE(v0.length(), 8.0f); + } + } + + void checkNormalize() + { + { + // GIVEN + Vector4D_SSE v0(10.0f, 0.0f, 0.0f, 0.0f); + + // WHEN + v0.normalize(); + + // THEN + QCOMPARE(v0, Vector4D_SSE(1.0f, 0.0f, 0.0f, 0.0f)); + } + { + // GIVEN + Vector4D_SSE v0(0.0f, 0.0f, 3.0f, 0.0f); + + // WHEN + v0.normalize(); + + // THEN + QCOMPARE(v0, Vector4D_SSE(0.0, 0.0f, 1.0f, 0.0f)); + } + } + + void checkIsNull() + { + { + // GIVEN + Vector4D_SSE v0; + + // THEN + QVERIFY(v0.isNull()); + } + { + // GIVEN + Vector4D_SSE v0(1.0f, 1.0f, 1.0f, 1.0f); + + // THEN + QVERIFY(!v0.isNull()); + } + } }; QTEST_APPLESS_MAIN(tst_Vector4D_SSE) diff --git a/tests/auto/render/coordinatereader/tst_coordinatereader.cpp b/tests/auto/render/coordinatereader/tst_coordinatereader.cpp index 7dfe3ceba..afb18fe55 100644 --- a/tests/auto/render/coordinatereader/tst_coordinatereader.cpp +++ b/tests/auto/render/coordinatereader/tst_coordinatereader.cpp @@ -67,7 +67,7 @@ public: { return m_bufferInfo; } - bool verifyCoordinate(uint index, QVector4D value) + bool verifyCoordinate(uint index, Vector4D value) { return qFuzzyCompare(getCoordinate(index), value); } @@ -270,12 +270,12 @@ private Q_SLOTS: // THEN QCOMPARE(ret, true); - QVERIFY(reader.verifyCoordinate(0, QVector4D(0, 0, 1, 1))); - QVERIFY(reader.verifyCoordinate(1, QVector4D(1, 0, 0, 1))); - QVERIFY(reader.verifyCoordinate(2, QVector4D(0, 1, 0, 1))); - QVERIFY(reader.verifyCoordinate(3, QVector4D(0, 0, 1, 1))); - QVERIFY(reader.verifyCoordinate(4, QVector4D(1, 0, 0, 1))); - QVERIFY(reader.verifyCoordinate(5, QVector4D(0, 1, 0, 1))); + QVERIFY(reader.verifyCoordinate(0, Vector4D(0, 0, 1, 1))); + QVERIFY(reader.verifyCoordinate(1, Vector4D(1, 0, 0, 1))); + QVERIFY(reader.verifyCoordinate(2, Vector4D(0, 1, 0, 1))); + QVERIFY(reader.verifyCoordinate(3, Vector4D(0, 0, 1, 1))); + QVERIFY(reader.verifyCoordinate(4, Vector4D(1, 0, 0, 1))); + QVERIFY(reader.verifyCoordinate(5, Vector4D(0, 1, 0, 1))); } void testReadCoordinateVec4() @@ -364,12 +364,12 @@ private Q_SLOTS: // THEN QCOMPARE(ret, true); - QVERIFY(reader.verifyCoordinate(0, QVector4D(0, 0, 1, 1))); - QVERIFY(reader.verifyCoordinate(1, QVector4D(1, 0, 0, 1))); - QVERIFY(reader.verifyCoordinate(2, QVector4D(0, 1, 0, 0))); - QVERIFY(reader.verifyCoordinate(3, QVector4D(0, 0, 1, 0))); - QVERIFY(reader.verifyCoordinate(4, QVector4D(1, 0, 0, 0))); - QVERIFY(reader.verifyCoordinate(5, QVector4D(0, 1, 0, 1))); + QVERIFY(reader.verifyCoordinate(0, Vector4D(0, 0, 1, 1))); + QVERIFY(reader.verifyCoordinate(1, Vector4D(1, 0, 0, 1))); + QVERIFY(reader.verifyCoordinate(2, Vector4D(0, 1, 0, 0))); + QVERIFY(reader.verifyCoordinate(3, Vector4D(0, 0, 1, 0))); + QVERIFY(reader.verifyCoordinate(4, Vector4D(1, 0, 0, 0))); + QVERIFY(reader.verifyCoordinate(5, Vector4D(0, 1, 0, 1))); } void testReadCoordinateFromAttribute() @@ -468,9 +468,9 @@ private Q_SLOTS: // THEN QCOMPARE(ret, true); - QVERIFY(reader.verifyCoordinate(0, QVector4D(0, 0, 1, 1))); - QVERIFY(reader.verifyCoordinate(1, QVector4D(0, 1, 0, 1))); - QVERIFY(reader.verifyCoordinate(2, QVector4D(1, 0, 0, 1))); + QVERIFY(reader.verifyCoordinate(0, Vector4D(0, 0, 1, 1))); + QVERIFY(reader.verifyCoordinate(1, Vector4D(0, 1, 0, 1))); + QVERIFY(reader.verifyCoordinate(2, Vector4D(1, 0, 0, 1))); // WHEN ret = reader.setGeometry(backendRenderer, @@ -479,9 +479,9 @@ private Q_SLOTS: // THEN QCOMPARE(ret, true); - QVERIFY(reader.verifyCoordinate(0, QVector4D(1, 0, 0, 1))); - QVERIFY(reader.verifyCoordinate(1, QVector4D(0, 0, 1, 1))); - QVERIFY(reader.verifyCoordinate(2, QVector4D(0, 1, 0, 1))); + QVERIFY(reader.verifyCoordinate(0, Vector4D(1, 0, 0, 1))); + QVERIFY(reader.verifyCoordinate(1, Vector4D(0, 0, 1, 1))); + QVERIFY(reader.verifyCoordinate(2, Vector4D(0, 1, 0, 1))); } }; diff --git a/tests/auto/render/qcamera/tst_qcamera.cpp b/tests/auto/render/qcamera/tst_qcamera.cpp index 82a6d8b89..b630c447a 100644 --- a/tests/auto/render/qcamera/tst_qcamera.cpp +++ b/tests/auto/render/qcamera/tst_qcamera.cpp @@ -165,7 +165,7 @@ private Q_SLOTS: Qt3DRender::Render::Entity *cameraEntity = test->nodeManagers()->lookupResource<Qt3DRender::Render::Entity, Qt3DRender::Render::EntityManager>(camera->id()); // THEN - QVERIFY(qFuzzyCompare(*cameraEntity->worldTransform(), parentTransform->matrix())); + QVERIFY(qFuzzyCompare(convertToQMatrix4x4(*cameraEntity->worldTransform()), convertToQMatrix4x4(parentTransform->matrix()))); } void checkTransformWithParentAndLookAt() @@ -193,7 +193,7 @@ private Q_SLOTS: m.translate(0.f, 1.f, 0.f); // 90 deg z-rotation + x-translation = y-translation m.rotate(90.f, QVector3D(0.f, 0.f, 1.f)); - const QMatrix4x4 worldTransform = *cameraEntity->worldTransform(); + const QMatrix4x4 worldTransform = convertToQMatrix4x4(*cameraEntity->worldTransform()); fuzzyCompareMatrix(worldTransform, m); } @@ -234,7 +234,7 @@ private Q_SLOTS: m.translate(3.f, 2.f, -1.f); // child's world translation m.rotate(90.f, QVector3D(0.f, 1.f, 0.f)); // camera's rotation - fuzzyCompareMatrix(*childEntity->worldTransform(), m); + fuzzyCompareMatrix(convertToQMatrix4x4(*childEntity->worldTransform()), m); } }; diff --git a/tests/auto/render/qray3d/tst_qray3d.cpp b/tests/auto/render/qray3d/tst_qray3d.cpp index e6ab02af0..e9d4d3033 100644 --- a/tests/auto/render/qray3d/tst_qray3d.cpp +++ b/tests/auto/render/qray3d/tst_qray3d.cpp @@ -70,7 +70,7 @@ static inline bool fuzzyCompare(float p1, float p2) return (qAbs(p1 - p2) <= (qIsNull(fac) ? 0.00001f : 0.00001f * fac)); } -static inline bool fuzzyCompare(const QVector3D &lhs, const QVector3D &rhs) +static inline bool fuzzyCompare(const Vector3D &lhs, const Vector3D &rhs) { if (fuzzyCompare(lhs.x(), rhs.x()) && fuzzyCompare(lhs.y(), rhs.y()) && @@ -85,59 +85,59 @@ static inline bool fuzzyCompare(const QVector3D &lhs, const QVector3D &rhs) void tst_QRay3D::create_data() { - QTest::addColumn<QVector3D>("point"); - QTest::addColumn<QVector3D>("direction"); + QTest::addColumn<Vector3D>("point"); + QTest::addColumn<Vector3D>("direction"); // normalized direction vectors QTest::newRow("line on x-axis from origin") - << QVector3D() - << QVector3D(1.0f, 0.0f, 0.0f); + << Vector3D() + << Vector3D(1.0f, 0.0f, 0.0f); QTest::newRow("line parallel -z-axis from 3,3,3") - << QVector3D(3.0f, 3.0f, 3.0f) - << QVector3D(0.0f, 0.0f, -1.0f); + << Vector3D(3.0f, 3.0f, 3.0f) + << Vector3D(0.0f, 0.0f, -1.0f); QTest::newRow("vertical line (parallel to y-axis)") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(0.0f, 1.0f, 0.0f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(0.0f, 1.0f, 0.0f); QTest::newRow("equidistant from all 3 axes") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(0.57735026919f, 0.57735026919f, 0.57735026919f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(0.57735026919f, 0.57735026919f, 0.57735026919f); // non-normalized direction vectors QTest::newRow("line on x-axis from origin - B") - << QVector3D() - << QVector3D(2.0f, 0.0f, 0.0f); + << Vector3D() + << Vector3D(2.0f, 0.0f, 0.0f); QTest::newRow("line parallel -z-axis from 3,3,3 - B") - << QVector3D(3.0f, 3.0f, 3.0f) - << QVector3D(0.0f, 0.0f, -0.7f); + << Vector3D(3.0f, 3.0f, 3.0f) + << Vector3D(0.0f, 0.0f, -0.7f); QTest::newRow("vertical line (parallel to y-axis) - B") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(0.0f, 5.3f, 0.0f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(0.0f, 5.3f, 0.0f); QTest::newRow("equidistant from all 3 axes - B") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(1.0f, 1.0f, 1.0f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(1.0f, 1.0f, 1.0f); QTest::newRow("negative direction") - << QVector3D(-3.0f, -3.0f, -3.0f) - << QVector3D(-1.2f, -1.8f, -2.4f); + << Vector3D(-3.0f, -3.0f, -3.0f) + << Vector3D(-1.2f, -1.8f, -2.4f); } void tst_QRay3D::create() { - QFETCH(QVector3D, point); - QFETCH(QVector3D, direction); + QFETCH(Vector3D, point); + QFETCH(Vector3D, direction); Qt3DRender::RayCasting::QRay3D ray(point, direction); QVERIFY(fuzzyCompare(ray.direction(), direction)); QVERIFY(fuzzyCompare(ray.origin(), point)); Qt3DRender::RayCasting::QRay3D ray2; - QCOMPARE(ray2.origin(), QVector3D(0, 0, 0)); - QCOMPARE(ray2.direction(), QVector3D(0, 0, 1)); + QCOMPARE(ray2.origin(), Vector3D(0, 0, 0)); + QCOMPARE(ray2.direction(), Vector3D(0, 0, 1)); ray2.setOrigin(point); ray2.setDirection(direction); QVERIFY(fuzzyCompare(ray.direction(), direction)); @@ -146,97 +146,97 @@ void tst_QRay3D::create() void tst_QRay3D::projection_data() { - QTest::addColumn<QVector3D>("point"); - QTest::addColumn<QVector3D>("direction"); - QTest::addColumn<QVector3D>("vector"); - QTest::addColumn<QVector3D>("expected"); + QTest::addColumn<Vector3D>("point"); + QTest::addColumn<Vector3D>("direction"); + QTest::addColumn<Vector3D>("vector"); + QTest::addColumn<Vector3D>("expected"); QTest::newRow("line on x-axis from origin") - << QVector3D() - << QVector3D(2.0f, 0.0f, 0.0f) - << QVector3D(0.6f, 0.0f, 0.0f) - << QVector3D(0.6f, 0.0f, 0.0f); + << Vector3D() + << Vector3D(2.0f, 0.0f, 0.0f) + << Vector3D(0.6f, 0.0f, 0.0f) + << Vector3D(0.6f, 0.0f, 0.0f); QTest::newRow("line parallel -z-axis from 3,3,3") - << QVector3D(3.0f, 3.0f, 3.0f) - << QVector3D(0.0f, 0.0f, -0.7f) - << QVector3D(3.0f, 3.0f, 2.4f) - << QVector3D(0.0f, 0.0f, 2.4f); + << Vector3D(3.0f, 3.0f, 3.0f) + << Vector3D(0.0f, 0.0f, -0.7f) + << Vector3D(3.0f, 3.0f, 2.4f) + << Vector3D(0.0f, 0.0f, 2.4f); QTest::newRow("vertical line (parallel to y-axis)") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(0.0f, 5.3f, 0.0f) - << QVector3D(0.5f, 0.6f, 0.5f) - << QVector3D(0.0f, 0.6f, 0.0f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(0.0f, 5.3f, 0.0f) + << Vector3D(0.5f, 0.6f, 0.5f) + << Vector3D(0.0f, 0.6f, 0.0f); QTest::newRow("equidistant from all 3 axes, project y-axis (with some z & x)") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(1.0f, 1.0f, 1.0f) - << QVector3D(0.5f, 5.0f, 0.5f) - << QVector3D(2.0f, 2.0f, 2.0f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(1.0f, 1.0f, 1.0f) + << Vector3D(0.5f, 5.0f, 0.5f) + << Vector3D(2.0f, 2.0f, 2.0f); QTest::newRow("negative direction line, project +ve y-axis (with some z & x)") - << QVector3D(-3.0f, -3.0f, -3.0f) - << QVector3D(-1.2f, -1.8f, -2.4f) - << QVector3D(0.5f, 5.0f, 0.5f) - << QVector3D(1.241379261016846f, 1.862068772315979f, 2.48275852203369f); + << Vector3D(-3.0f, -3.0f, -3.0f) + << Vector3D(-1.2f, -1.8f, -2.4f) + << Vector3D(0.5f, 5.0f, 0.5f) + << Vector3D(1.241379261016846f, 1.862068772315979f, 2.48275852203369f); } void tst_QRay3D::projection() { - QFETCH(QVector3D, point); - QFETCH(QVector3D, direction); - QFETCH(QVector3D, vector); - QFETCH(QVector3D, expected); + QFETCH(Vector3D, point); + QFETCH(Vector3D, direction); + QFETCH(Vector3D, vector); + QFETCH(Vector3D, expected); Qt3DRender::RayCasting::QRay3D line(point, direction); - QVector3D result = line.project(vector); + Vector3D result = line.project(vector); QVERIFY(fuzzyCompare(result, expected)); } void tst_QRay3D::point_data() { - QTest::addColumn<QVector3D>("point"); - QTest::addColumn<QVector3D>("direction"); - QTest::addColumn<QVector3D>("point_on_line_pos_0_6"); - QTest::addColumn<QVector3D>("point_on_line_neg_7_2"); + QTest::addColumn<Vector3D>("point"); + QTest::addColumn<Vector3D>("direction"); + QTest::addColumn<Vector3D>("point_on_line_pos_0_6"); + QTest::addColumn<Vector3D>("point_on_line_neg_7_2"); QTest::newRow("line on x-axis from origin") - << QVector3D() - << QVector3D(2.0f, 0.0f, 0.0f) - << QVector3D(1.2f, 0.0f, 0.0f) - << QVector3D(-14.4f, 0.0f, 0.0f); + << Vector3D() + << Vector3D(2.0f, 0.0f, 0.0f) + << Vector3D(1.2f, 0.0f, 0.0f) + << Vector3D(-14.4f, 0.0f, 0.0f); QTest::newRow("line parallel -z-axis from 3,3,3") - << QVector3D(3.0f, 3.0f, 3.0f) - << QVector3D(0.0f, 0.0f, -0.7f) - << QVector3D(3.0f, 3.0f, 2.58f) - << QVector3D(3.0f, 3.0f, 8.04f); + << Vector3D(3.0f, 3.0f, 3.0f) + << Vector3D(0.0f, 0.0f, -0.7f) + << Vector3D(3.0f, 3.0f, 2.58f) + << Vector3D(3.0f, 3.0f, 8.04f); QTest::newRow("vertical line (parallel to y-axis)") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(0.0f, 5.3f, 0.0f) - << QVector3D(0.5f, 3.18f, 0.5f) - << QVector3D(0.5f, -38.16f, 0.5f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(0.0f, 5.3f, 0.0f) + << Vector3D(0.5f, 3.18f, 0.5f) + << Vector3D(0.5f, -38.16f, 0.5f); QTest::newRow("equidistant from all 3 axes") - << QVector3D(0.5f, 0.0f, 0.5f) - << QVector3D(1.0f, 1.0f, 1.0f) - << QVector3D(1.1f, 0.6f, 1.1f) - << QVector3D(-6.7f, -7.2f, -6.7f); + << Vector3D(0.5f, 0.0f, 0.5f) + << Vector3D(1.0f, 1.0f, 1.0f) + << Vector3D(1.1f, 0.6f, 1.1f) + << Vector3D(-6.7f, -7.2f, -6.7f); QTest::newRow("negative direction") - << QVector3D(-3.0f, -3.0f, -3.0f) - << QVector3D(-1.2f, -1.8f, -2.4f) - << QVector3D(-3.72f, -4.08f, -4.44f) - << QVector3D(5.64f, 9.96f, 14.28f); + << Vector3D(-3.0f, -3.0f, -3.0f) + << Vector3D(-1.2f, -1.8f, -2.4f) + << Vector3D(-3.72f, -4.08f, -4.44f) + << Vector3D(5.64f, 9.96f, 14.28f); } void tst_QRay3D::point() { - QFETCH(QVector3D, point); - QFETCH(QVector3D, direction); - QFETCH(QVector3D, point_on_line_pos_0_6); - QFETCH(QVector3D, point_on_line_neg_7_2); + QFETCH(Vector3D, point); + QFETCH(Vector3D, direction); + QFETCH(Vector3D, point_on_line_pos_0_6); + QFETCH(Vector3D, point_on_line_neg_7_2); Qt3DRender::RayCasting::QRay3D line(point, direction); QVERIFY(fuzzyCompare(line.point(0.6f), point_on_line_pos_0_6)); QVERIFY(fuzzyCompare(line.point(-7.2f), point_on_line_neg_7_2)); @@ -246,39 +246,39 @@ void tst_QRay3D::point() void tst_QRay3D::contains_point_data() { - QTest::addColumn<QVector3D>("origin"); - QTest::addColumn<QVector3D>("direction"); - QTest::addColumn<QVector3D>("point"); + QTest::addColumn<Vector3D>("origin"); + QTest::addColumn<Vector3D>("direction"); + QTest::addColumn<Vector3D>("point"); QTest::addColumn<bool>("contains"); QTest::newRow("bogus this line with null direction") - << QVector3D(1.0, 3.0, 3.0) - << QVector3D(0.0, 0.0, 0.0) - << QVector3D(1.0, 2.0, 4.0) + << Vector3D(1.0, 3.0, 3.0) + << Vector3D(0.0, 0.0, 0.0) + << Vector3D(1.0, 2.0, 4.0) << false; QTest::newRow("point at the origin") - << QVector3D(0.0, 0.0, 0.0) - << QVector3D(1.0, 3.0, 3.0) - << QVector3D(0.0, 0.0, 0.0) + << Vector3D(0.0, 0.0, 0.0) + << Vector3D(1.0, 3.0, 3.0) + << Vector3D(0.0, 0.0, 0.0) << true; QTest::newRow("close to the origin") - << QVector3D(1.0, 1.0, 1.0) - << QVector3D(1.0, 3.0, 3.0) - << QVector3D(1.0005f, 1.0005f, 1.0) + << Vector3D(1.0, 1.0, 1.0) + << Vector3D(1.0, 3.0, 3.0) + << Vector3D(1.0005f, 1.0005f, 1.0) << false; QTest::newRow("45 line line in plane x=1") - << QVector3D(1.0, 3.0, 3.0) - << QVector3D(0.0, -1.0, -1.0) - << QVector3D(1.0, 4.0, 4.0) + << Vector3D(1.0, 3.0, 3.0) + << Vector3D(0.0, -1.0, -1.0) + << Vector3D(1.0, 4.0, 4.0) << true; { // This is to prove that the constructed approach give the // same results - QVector3D p(1.0, 3.0, 3.0); - QVector3D v(0.0, -1.0, -1.0); + Vector3D p(1.0, 3.0, 3.0); + Vector3D v(0.0, -1.0, -1.0); QTest::newRow("constructed 45 line line in plane x=1") << p @@ -288,20 +288,20 @@ void tst_QRay3D::contains_point_data() } QTest::newRow("intersection with negative s in plane z=-1") - << QVector3D(1.0f, 2.0f, -1.0f) - << QVector3D(1.0f, 1.0f, 0.0f) - << QVector3D(2.0f, 1.0f, 0.0f) + << Vector3D(1.0f, 2.0f, -1.0f) + << Vector3D(1.0f, 1.0f, 0.0f) + << Vector3D(2.0f, 1.0f, 0.0f) << false; QTest::newRow("45 angled line") - << QVector3D(3.0f, 0.0f, -1.0f) - << QVector3D(1.0f, -1.0f, 1.0f) - << QVector3D(6.0f, -3.0f, 2.0f) + << Vector3D(3.0f, 0.0f, -1.0f) + << Vector3D(1.0f, -1.0f, 1.0f) + << Vector3D(6.0f, -3.0f, 2.0f) << true; { - QVector3D p(-10.0, 3.0, 3.0); - QVector3D v(0.0, 20.0, -1.0); + Vector3D p(-10.0, 3.0, 3.0); + Vector3D v(0.0, 20.0, -1.0); QTest::newRow("constructed vector close to axis") << p << v @@ -310,8 +310,8 @@ void tst_QRay3D::contains_point_data() } { - QVector3D p(1.0, 3.0, 3.0); - QVector3D v(40.0, 500.0, -1.0); + Vector3D p(1.0, 3.0, 3.0); + Vector3D v(40.0, 500.0, -1.0); QTest::newRow("constructed larger values close to axis") << p << v @@ -322,9 +322,9 @@ void tst_QRay3D::contains_point_data() void tst_QRay3D::contains_point() { - QFETCH(QVector3D, origin); - QFETCH(QVector3D, direction); - QFETCH(QVector3D, point); + QFETCH(Vector3D, origin); + QFETCH(Vector3D, direction); + QFETCH(Vector3D, point); QFETCH(bool, contains); Qt3DRender::RayCasting::QRay3D line(origin, direction); @@ -338,9 +338,9 @@ void tst_QRay3D::contains_ray_data() void tst_QRay3D::contains_ray() { - QFETCH(QVector3D, origin); - QFETCH(QVector3D, direction); - QFETCH(QVector3D, point); + QFETCH(Vector3D, origin); + QFETCH(Vector3D, direction); + QFETCH(Vector3D, point); QFETCH(bool, contains); Qt3DRender::RayCasting::QRay3D line(origin, direction); @@ -355,7 +355,7 @@ void tst_QRay3D::contains_ray() QVERIFY(line2.contains(line)); // Different direction. - Qt3DRender::RayCasting::QRay3D line4(point, QVector3D(direction.y(), direction.x(), direction.z())); + Qt3DRender::RayCasting::QRay3D line4(point, Vector3D(direction.y(), direction.x(), direction.z())); QVERIFY(!line.contains(line4)); QVERIFY(!line4.contains(line)); } else { @@ -367,41 +367,41 @@ void tst_QRay3D::contains_ray() void tst_QRay3D::distance_data() { - QTest::addColumn<QVector3D>("origin"); - QTest::addColumn<QVector3D>("direction"); - QTest::addColumn<QVector3D>("point"); + QTest::addColumn<Vector3D>("origin"); + QTest::addColumn<Vector3D>("direction"); + QTest::addColumn<Vector3D>("point"); QTest::addColumn<float>("distance"); QTest::newRow("axis-x") - << QVector3D(6.0f, 0.0f, 0.0f) - << QVector3D(1.0f, 0.0f, 0.0f) - << QVector3D(0.0f, 0.0f, 0.0f) + << Vector3D(6.0f, 0.0f, 0.0f) + << Vector3D(1.0f, 0.0f, 0.0f) + << Vector3D(0.0f, 0.0f, 0.0f) << 0.0f; QTest::newRow("axis-x to 1") - << QVector3D(6.0f, 0.0f, 0.0f) - << QVector3D(1.0f, 0.0f, 0.0f) - << QVector3D(0.0f, 1.0f, 0.0f) + << Vector3D(6.0f, 0.0f, 0.0f) + << Vector3D(1.0f, 0.0f, 0.0f) + << Vector3D(0.0f, 1.0f, 0.0f) << 1.0f; QTest::newRow("neg-axis-y") - << QVector3D(0.0f, 6.0f, 0.0f) - << QVector3D(0.0f, -1.5f, 0.0f) - << QVector3D(0.0f, 100.0f, 0.0f) + << Vector3D(0.0f, 6.0f, 0.0f) + << Vector3D(0.0f, -1.5f, 0.0f) + << Vector3D(0.0f, 100.0f, 0.0f) << 0.0f; QTest::newRow("neg-axis-y to 2") - << QVector3D(0.0f, 6.0f, 0.0f) - << QVector3D(0.0f, -1.5f, 0.0f) - << QVector3D(2.0f, 0.0f, 0.0f) + << Vector3D(0.0f, 6.0f, 0.0f) + << Vector3D(0.0f, -1.5f, 0.0f) + << Vector3D(2.0f, 0.0f, 0.0f) << 2.0f; } void tst_QRay3D::distance() { - QFETCH(QVector3D, origin); - QFETCH(QVector3D, direction); - QFETCH(QVector3D, point); + QFETCH(Vector3D, origin); + QFETCH(Vector3D, direction); + QFETCH(Vector3D, point); QFETCH(float, distance); Qt3DRender::RayCasting::QRay3D line(origin, direction); @@ -410,9 +410,9 @@ void tst_QRay3D::distance() void tst_QRay3D::compare() { - Qt3DRender::RayCasting::QRay3D ray1(QVector3D(10, 20, 30), QVector3D(-3, -4, -5)); - Qt3DRender::RayCasting::QRay3D ray2(QVector3D(10, 20, 30), QVector3D(1.5f, 2.0f, 2.5f)); - Qt3DRender::RayCasting::QRay3D ray3(QVector3D(0, 20, 30), QVector3D(-3, -4, -5)); + Qt3DRender::RayCasting::QRay3D ray1(Vector3D(10, 20, 30), Vector3D(-3, -4, -5)); + Qt3DRender::RayCasting::QRay3D ray2(Vector3D(10, 20, 30), Vector3D(1.5f, 2.0f, 2.5f)); + Qt3DRender::RayCasting::QRay3D ray3(Vector3D(0, 20, 30), Vector3D(-3, -4, -5)); QVERIFY(ray1 == ray1); QVERIFY(!(ray1 != ray1)); QVERIFY(qFuzzyCompare(ray1, ray1)); @@ -427,7 +427,7 @@ void tst_QRay3D::compare() void tst_QRay3D::dataStream() { #ifndef QT_NO_DATASTREAM - Qt3DRender::RayCasting::QRay3D ray(QVector3D(1.0f, 2.0f, 3.0f), QVector3D(4.0f, 5.0f, 6.0f)); + Qt3DRender::RayCasting::QRay3D ray(Vector3D(1.0f, 2.0f, 3.0f), Vector3D(4.0f, 5.0f, 6.0f)); QByteArray data; { @@ -452,13 +452,17 @@ void tst_QRay3D::transform_data() void tst_QRay3D::transform() { - QFETCH(QVector3D, point); - QFETCH(QVector3D, direction); + QFETCH(Vector3D, point); + QFETCH(Vector3D, direction); - QMatrix4x4 m; - m.translate(-1.0f, 2.5f, 5.0f); - m.rotate(45.0f, 1.0f, 1.0f, 1.0f); - m.scale(23.5f); + Matrix4x4 m; + { + QMatrix4x4 c; + c.translate(-1.0f, 2.5f, 5.0f); + c.rotate(45.0f, 1.0f, 1.0f, 1.0f); + c.scale(23.5f); + m = Matrix4x4(c); + } Qt3DRender::RayCasting::QRay3D ray1(point, direction); Qt3DRender::RayCasting::QRay3D ray2(ray1); @@ -495,19 +499,19 @@ void tst_QRay3D::properties() qRegisterMetaType<Qt3DRender::RayCasting::QRay3D>(); - obj.setRay(Qt3DRender::RayCasting::QRay3D(QVector3D(1, 2, 3), QVector3D(4, 5, 6))); + obj.setRay(Qt3DRender::RayCasting::QRay3D(Vector3D(1, 2, 3), Vector3D(4, 5, 6))); Qt3DRender::RayCasting::QRay3D r = qvariant_cast<Qt3DRender::RayCasting::QRay3D>(obj.property("ray")); - QCOMPARE(r.origin(), QVector3D(1, 2, 3)); - QCOMPARE(r.direction(), QVector3D(4, 5, 6)); + QCOMPARE(r.origin(), Vector3D(1, 2, 3)); + QCOMPARE(r.direction(), Vector3D(4, 5, 6)); obj.setProperty("ray", qVariantFromValue - (Qt3DRender::RayCasting::QRay3D(QVector3D(-1, -2, -3), QVector3D(-4, -5, -6)))); + (Qt3DRender::RayCasting::QRay3D(Vector3D(-1, -2, -3), Vector3D(-4, -5, -6)))); r = qvariant_cast<Qt3DRender::RayCasting::QRay3D>(obj.property("ray")); - QCOMPARE(r.origin(), QVector3D(-1, -2, -3)); - QCOMPARE(r.direction(), QVector3D(-4, -5, -6)); + QCOMPARE(r.origin(), Vector3D(-1, -2, -3)); + QCOMPARE(r.direction(), Vector3D(-4, -5, -6)); } void tst_QRay3D::metaTypes() @@ -523,14 +527,14 @@ void tst_QRay3D::shouldNotAllowNullDirection() // GIVEN Qt3DRender::RayCasting::QRay3D ray; - QCOMPARE(ray.origin(), QVector3D(0, 0, 0)); - QCOMPARE(ray.direction(), QVector3D(0, 0, 1)); + QCOMPARE(ray.origin(), Vector3D(0, 0, 0)); + QCOMPARE(ray.direction(), Vector3D(0, 0, 1)); // WHEN - ray.setDirection(QVector3D(0, 0, 0)); + ray.setDirection(Vector3D(0, 0, 0)); // THEN - QCOMPARE(ray.direction(), QVector3D(0, 0, 1)); + QCOMPARE(ray.direction(), Vector3D(0, 0, 1)); } QTEST_APPLESS_MAIN(tst_QRay3D) diff --git a/tests/auto/render/raycasting/tst_raycasting.cpp b/tests/auto/render/raycasting/tst_raycasting.cpp index 50e33e272..1f6cb58a0 100644 --- a/tests/auto/render/raycasting/tst_raycasting.cpp +++ b/tests/auto/render/raycasting/tst_raycasting.cpp @@ -72,15 +72,15 @@ void tst_RayCasting::shouldIntersect_data() QTest::addColumn<Sphere>("sphere"); QTest::addColumn<bool>("shouldIntersect"); - QRay3D ray(QVector3D(1, 1, 1), QVector3D(0, 0, 1)); + QRay3D ray(Vector3D(1, 1, 1), Vector3D(0, 0, 1)); - Sphere sphere1(QVector3D(1, 1, 1), 2); - Sphere sphere2(QVector3D(0, 0, 0), 3); - Sphere sphere3(QVector3D(0, 1, 3), 1); - Sphere sphere4(QVector3D(4, 4, 5), 1); - Sphere sphere5(QVector3D(2, 2, 11), 5); - Sphere sphere6(QVector3D(2, 2, 13), 1); - Sphere sphere7(QVector3D(2, 2, 15), 5); + Sphere sphere1(Vector3D(1, 1, 1), 2); + Sphere sphere2(Vector3D(0, 0, 0), 3); + Sphere sphere3(Vector3D(0, 1, 3), 1); + Sphere sphere4(Vector3D(4, 4, 5), 1); + Sphere sphere5(Vector3D(2, 2, 11), 5); + Sphere sphere6(Vector3D(2, 2, 13), 1); + Sphere sphere7(Vector3D(2, 2, 15), 5); QTest::newRow("Ray starts inside sphere") << ray << sphere1 << true; QTest::newRow("Ray starts inside sphere") << ray << sphere2 << true; @@ -97,7 +97,7 @@ void tst_RayCasting::shouldIntersect() QFETCH(Sphere, sphere); QFETCH(bool, shouldIntersect); - QVector3D intersectionPoint; + Vector3D intersectionPoint; QCOMPARE(sphere.intersects(ray, &intersectionPoint), shouldIntersect); } @@ -206,16 +206,16 @@ void tst_RayCasting::shouldReturnHits_data() QTest::addColumn<QVector<QNodeId> >("hits"); QTest::addColumn<QAbstractCollisionQueryService::QueryMode >("queryMode"); - QRay3D ray(QVector3D(1, 1, 1), QVector3D(0, 0, 1)); + QRay3D ray(Vector3D(1, 1, 1), Vector3D(0, 0, 1)); this->boundingVolumes.clear(); - this->boundingVolumes.append(QVector<Sphere>() << Sphere(QVector3D(1, 1, 1), 3, QNodeId::createId()) - << Sphere(QVector3D(0, 0, 0), 3, QNodeId::createId()) - << Sphere(QVector3D(0, 1, 3), 1, QNodeId::createId()) - << Sphere(QVector3D(4, 4, 5), 1, QNodeId::createId()) - << Sphere(QVector3D(2, 2, 11), 5, QNodeId::createId()) - << Sphere(QVector3D(2, 2, 13), 1, QNodeId::createId()) - << Sphere(QVector3D(2, 2, 15), 5, QNodeId::createId())); + this->boundingVolumes.append(QVector<Sphere>() << Sphere(Vector3D(1, 1, 1), 3, QNodeId::createId()) + << Sphere(Vector3D(0, 0, 0), 3, QNodeId::createId()) + << Sphere(Vector3D(0, 1, 3), 1, QNodeId::createId()) + << Sphere(Vector3D(4, 4, 5), 1, QNodeId::createId()) + << Sphere(Vector3D(2, 2, 11), 5, QNodeId::createId()) + << Sphere(Vector3D(2, 2, 13), 1, QNodeId::createId()) + << Sphere(Vector3D(2, 2, 15), 5, QNodeId::createId())); QTest::newRow("All hits, One sphere intersect") << ray << (QVector<QBoundingVolume *> () << volumeAt(0) << volumeAt(3)) @@ -276,11 +276,11 @@ void tst_RayCasting::shouldReturnHits() void tst_RayCasting::shouldUseProvidedBoudingVolumes() { // GIVEN - QRay3D ray(QVector3D(1, 1, 1), QVector3D(0, 0, 1)); + QRay3D ray(Vector3D(1, 1, 1), Vector3D(0, 0, 1)); - Sphere sphere1(QVector3D(1, 1, 1), 3); - Sphere sphere3(QVector3D(0, 1, 3), 1); - Sphere sphere4(QVector3D(4, 4, 5), 1); + Sphere sphere1(Vector3D(1, 1, 1), 3); + Sphere sphere3(Vector3D(0, 1, 3), 1); + Sphere sphere4(Vector3D(4, 4, 5), 1); MyBoudingVolumesProvider provider(QVector<QBoundingVolume *>() << &sphere1 << &sphere4 << &sphere3); QVector<QNodeId> hits(QVector<QNodeId>() << sphere1.id() << sphere3.id()); @@ -325,10 +325,10 @@ void tst_RayCasting::mousePicking() // Window center on near plane QRay3D ray = Qt3DRender::Render::PickBoundingVolumeJob::intersectionRay(viewport.center().toPoint(), - camera.viewMatrix(), - camera.projectionMatrix(), + Matrix4x4(camera.viewMatrix()), + Matrix4x4(camera.projectionMatrix()), viewport.toRect()); - Qt3DRender::Render::Sphere s(QVector3D(0.0f, 0.5f, 0.0f), 1.0f); + Qt3DRender::Render::Sphere s(Vector3D(0.0f, 0.5f, 0.0f), 1.0f); // WHEN bool intersects = s.intersects(ray, nullptr); @@ -338,8 +338,8 @@ void tst_RayCasting::mousePicking() // WHEN ray = Qt3DRender::Render::PickBoundingVolumeJob::intersectionRay(viewport.topLeft().toPoint(), - camera.viewMatrix(), - camera.projectionMatrix(), + Matrix4x4(camera.viewMatrix()), + Matrix4x4(camera.projectionMatrix()), viewport.toRect()); intersects = s.intersects(ray, nullptr); @@ -348,8 +348,8 @@ void tst_RayCasting::mousePicking() // WHEN ray = Qt3DRender::Render::PickBoundingVolumeJob::intersectionRay(viewport.topRight().toPoint(), - camera.viewMatrix(), - camera.projectionMatrix(), + Matrix4x4(camera.viewMatrix()), + Matrix4x4(camera.projectionMatrix()), viewport.toRect()); intersects = s.intersects(ray, nullptr); @@ -358,8 +358,8 @@ void tst_RayCasting::mousePicking() // WHEN ray = Qt3DRender::Render::PickBoundingVolumeJob::intersectionRay(viewport.bottomLeft().toPoint(), - camera.viewMatrix(), - camera.projectionMatrix(), + Matrix4x4(camera.viewMatrix()), + Matrix4x4(camera.projectionMatrix()), viewport.toRect()); intersects = s.intersects(ray, nullptr); @@ -368,8 +368,8 @@ void tst_RayCasting::mousePicking() // WHEN ray = Qt3DRender::Render::PickBoundingVolumeJob::intersectionRay(viewport.bottomRight().toPoint(), - camera.viewMatrix(), - camera.projectionMatrix(), + Matrix4x4(camera.viewMatrix()), + Matrix4x4(camera.projectionMatrix()), viewport.toRect()); intersects = s.intersects(ray, nullptr); diff --git a/tests/auto/render/render.pro b/tests/auto/render/render.pro index 9355d8310..7e36f97ab 100644 --- a/tests/auto/render/render.pro +++ b/tests/auto/render/render.pro @@ -24,14 +24,12 @@ qtConfig(private_tests) { attribute \ geometry \ geometryrenderer \ - raycasting \ qcameraselector \ qclearbuffers \ qframegraphnode \ qlayerfilter \ qabstractlight \ qenvironmentlight \ - qray3d \ qrenderpassfilter \ qrenderstate \ qrendertargetselector \ @@ -45,8 +43,6 @@ qtConfig(private_tests) { objectpicker \ # qboundingvolumedebug \ # boundingvolumedebug \ - trianglesextractor \ - triangleboundingvolume \ ddstextures \ shadercache \ layerfiltering \ @@ -114,6 +110,16 @@ qtConfig(private_tests) { renderbarrierjob QT_FOR_CONFIG = 3dcore-private + # TO DO: These could be restored to be executed in all cases + # when aligned-malloc.pri becomes part of the test framework + !qtConfig(qt3d-simd-avx2): { + SUBDIRS += \ + qray3d \ + raycasting \ + trianglesextractor \ + triangleboundingvolume \ + } + qtConfig(qt3d-extras) { SUBDIRS += \ qmaterial \ diff --git a/tests/auto/render/renderqueue/renderqueue.pro b/tests/auto/render/renderqueue/renderqueue.pro index 92e675285..945fe4cf4 100644 --- a/tests/auto/render/renderqueue/renderqueue.pro +++ b/tests/auto/render/renderqueue/renderqueue.pro @@ -7,3 +7,5 @@ QT += 3dcore 3dcore-private 3drender 3drender-private testlib CONFIG += testcase SOURCES += tst_renderqueue.cpp + +include(../../core/common/common.pri) diff --git a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp index 1309249d7..c361a8d92 100644 --- a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp +++ b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp @@ -555,14 +555,14 @@ private Q_SLOTS: renderViewBuilder.buildJobHierachy(); // THEN - QCOMPARE(renderViewBuilder.frustumCullingJob()->viewProjection(), QMatrix4x4()); + QCOMPARE(renderViewBuilder.frustumCullingJob()->viewProjection(), Matrix4x4()); // WHEN renderViewBuilder.renderViewJob()->run(); renderViewBuilder.syncFrustumCullingJob()->run(); // THEN - QCOMPARE(renderViewBuilder.frustumCullingJob()->viewProjection(), camera->projectionMatrix() * camera->viewMatrix()); + QCOMPARE(convertToQMatrix4x4(renderViewBuilder.frustumCullingJob()->viewProjection()), camera->projectionMatrix() * camera->viewMatrix()); } void checkRemoveEntitiesNotInSubset() diff --git a/tests/auto/render/renderviews/tst_renderviews.cpp b/tests/auto/render/renderviews/tst_renderviews.cpp index 2c8486ed0..4ad869219 100644 --- a/tests/auto/render/renderviews/tst_renderviews.cpp +++ b/tests/auto/render/renderviews/tst_renderviews.cpp @@ -59,23 +59,6 @@ private Q_SLOTS: } - void checkRenderViewDoesNotLeak() - { - QSKIP("Allocated Disabled"); - // GIVEN - Qt3DCore::QFrameAllocator allocator(192, 16, 128); - RenderView *rv = allocator.allocate<RenderView>(); - - // THEN - QVERIFY(!allocator.isEmpty()); - - // WHEN - delete rv; - - // THEN - QVERIFY(allocator.isEmpty()); - } - void checkRenderViewInitialState() { // GIVEN diff --git a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp b/tests/auto/render/renderviewutils/tst_renderviewutils.cpp index fa0dce6af..eaa5a4e06 100644 --- a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp +++ b/tests/auto/render/renderviewutils/tst_renderviewutils.cpp @@ -711,17 +711,25 @@ void tst_RenderViewUtils::transformedProperties() QScopedPointer<Qt3DRender::Render::ShaderDataManager> manager(new Qt3DRender::Render::ShaderDataManager()); // WHEN - const QVector3D position = QVector3D(15.0f, -5.0f, 10.0f); - QMatrix4x4 worldMatrix; - QMatrix4x4 viewMatrix; - - worldMatrix.translate(-3.0f, 2.0f, 7.5f); - viewMatrix.translate(9.0f, 6.0f, 12.0f); + const Vector3D position = Vector3D(15.0f, -5.0f, 10.0f); + const QVector3D positionQt = convertToQVector3D(position); + Matrix4x4 worldMatrix; + { + QMatrix4x4 m; + m.translate(-3.0f, 2.0f, 7.5f); + worldMatrix = Matrix4x4(m); + } + Matrix4x4 viewMatrix; + { + QMatrix4x4 m; + m.translate(9.0f, 6.0f, 12.0f); + viewMatrix = Matrix4x4(m); + } - shaderData->setProperty("position0", position); - shaderData->setProperty("position1", position); - shaderData->setProperty("position2", position); - shaderData->setProperty("position3", position); + shaderData->setProperty("position0", positionQt); + shaderData->setProperty("position1", positionQt); + shaderData->setProperty("position2", positionQt); + shaderData->setProperty("position3", positionQt); shaderData->setProperty("position1Transformed", Qt3DRender::Render::ShaderData::ModelToEye); shaderData->setProperty("position2Transformed", Qt3DRender::Render::ShaderData::ModelToWorld); shaderData->setProperty("position3Transformed", Qt3DRender::Render::ShaderData::ModelToWorldDirection); @@ -737,16 +745,16 @@ void tst_RenderViewUtils::transformedProperties() // WHEN backendShaderData->updateWorldTransform(worldMatrix); - const QVector3D position1Value = backendShaderData->getTransformedProperty(QStringLiteral("position1"), viewMatrix).value<QVector3D>(); - const QVector3D position2Value = backendShaderData->getTransformedProperty(QStringLiteral("position2"), viewMatrix).value<QVector3D>(); - const QVector3D position3Value = backendShaderData->getTransformedProperty(QStringLiteral("position3"), viewMatrix).value<QVector3D>(); + const Vector3D position1Value = backendShaderData->getTransformedProperty(QStringLiteral("position1"), viewMatrix).value<Vector3D>(); + const Vector3D position2Value = backendShaderData->getTransformedProperty(QStringLiteral("position2"), viewMatrix).value<Vector3D>(); + const Vector3D position3Value = backendShaderData->getTransformedProperty(QStringLiteral("position3"), viewMatrix).value<Vector3D>(); const QVariant position0Value = backendShaderData->getTransformedProperty(QStringLiteral("position0"), viewMatrix); // THEN QCOMPARE(position0Value, QVariant()); QCOMPARE(position1Value, viewMatrix * worldMatrix * position); QCOMPARE(position2Value, worldMatrix * position); - QCOMPARE(position3Value, (worldMatrix * QVector4D(position, 0.0f)).toVector3D()); + QCOMPARE(position3Value, Vector3D((worldMatrix * Vector4D(position, 0.0f)))); } void tst_RenderViewUtils::shouldNotifyDynamicPropertyChanges() diff --git a/tests/auto/render/segmentvisitor/tst_segmentvisitor.cpp b/tests/auto/render/segmentvisitor/tst_segmentvisitor.cpp index 2c3f3f7c9..da420e1ac 100644 --- a/tests/auto/render/segmentvisitor/tst_segmentvisitor.cpp +++ b/tests/auto/render/segmentvisitor/tst_segmentvisitor.cpp @@ -49,7 +49,7 @@ public: } - virtual void visit(uint andx, const QVector3D &a, uint bndx, const QVector3D &b) + virtual void visit(uint andx, const Vector3D &a, uint bndx, const Vector3D &b) { m_segments.push_back(TestSegment(andx, a, bndx, b)); } @@ -69,7 +69,7 @@ public: return m_segments.size(); } - bool verifySegment(uint segment, uint andx, uint bndx, QVector3D a, QVector3D b) const + bool verifySegment(uint segment, uint andx, uint bndx, Vector3D a, Vector3D b) const { if (segment >= uint(m_segments.size())) return false; @@ -87,13 +87,13 @@ private: struct TestSegment { uint abcndx[2]; - QVector3D abc[2]; + Vector3D abc[2]; TestSegment() { abcndx[0] = abcndx[1] = uint(-1); } - TestSegment(uint andx, const QVector3D &a, uint bndx, const QVector3D &b) + TestSegment(uint andx, const Vector3D &a, uint bndx, const Vector3D &b) { abcndx[0] = andx; abcndx[1] = bndx; @@ -218,9 +218,9 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(3)); - QVERIFY(visitor.verifySegment(0, 0,1, QVector3D(0,0,1), QVector3D(1,0,0))); - QVERIFY(visitor.verifySegment(1, 2,3, QVector3D(0,1,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifySegment(2, 4,5, QVector3D(1,0,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifySegment(0, 0,1, Vector3D(0,0,1), Vector3D(1,0,0))); + QVERIFY(visitor.verifySegment(1, 2,3, Vector3D(0,1,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifySegment(2, 4,5, Vector3D(1,0,0), Vector3D(0,1,0))); } void testVisitSegmentsIndexed() @@ -318,11 +318,11 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(5)); - QVERIFY(visitor.verifySegment(0, 0,1, QVector3D(0,0,0), QVector3D(1,0,0))); - QVERIFY(visitor.verifySegment(1, 1,2, QVector3D(1,0,0), QVector3D(1,1,0))); - QVERIFY(visitor.verifySegment(2, 2,3, QVector3D(1,1,0), QVector3D(0,1,0))); - QVERIFY(visitor.verifySegment(3, 0,2, QVector3D(0,0,0), QVector3D(1,1,0))); - QVERIFY(visitor.verifySegment(4, 1,3, QVector3D(1,0,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifySegment(0, 0,1, Vector3D(0,0,0), Vector3D(1,0,0))); + QVERIFY(visitor.verifySegment(1, 1,2, Vector3D(1,0,0), Vector3D(1,1,0))); + QVERIFY(visitor.verifySegment(2, 2,3, Vector3D(1,1,0), Vector3D(0,1,0))); + QVERIFY(visitor.verifySegment(3, 0,2, Vector3D(0,0,0), Vector3D(1,1,0))); + QVERIFY(visitor.verifySegment(4, 1,3, Vector3D(1,0,0), Vector3D(0,1,0))); } void testVisitLineStrip() @@ -387,9 +387,9 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(3)); - QVERIFY(visitor.verifySegment(0, 0,1, QVector3D(0,0,0), QVector3D(1,0,0))); - QVERIFY(visitor.verifySegment(1, 1,2, QVector3D(1,0,0), QVector3D(1,1,0))); - QVERIFY(visitor.verifySegment(2, 2,3, QVector3D(1,1,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifySegment(0, 0,1, Vector3D(0,0,0), Vector3D(1,0,0))); + QVERIFY(visitor.verifySegment(1, 1,2, Vector3D(1,0,0), Vector3D(1,1,0))); + QVERIFY(visitor.verifySegment(2, 2,3, Vector3D(1,1,0), Vector3D(0,1,0))); } void testVisitListStripIndexed() @@ -481,9 +481,9 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(3)); - QVERIFY(visitor.verifySegment(0, 0,1, QVector3D(0,0,0), QVector3D(1,0,0))); - QVERIFY(visitor.verifySegment(1, 1,2, QVector3D(1,0,0), QVector3D(1,1,0))); - QVERIFY(visitor.verifySegment(2, 2,3, QVector3D(1,1,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifySegment(0, 0,1, Vector3D(0,0,0), Vector3D(1,0,0))); + QVERIFY(visitor.verifySegment(1, 1,2, Vector3D(1,0,0), Vector3D(1,1,0))); + QVERIFY(visitor.verifySegment(2, 2,3, Vector3D(1,1,0), Vector3D(0,1,0))); } void testVisitLineLoop() @@ -548,10 +548,10 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(4)); - QVERIFY(visitor.verifySegment(0, 0,1, QVector3D(0,0,0), QVector3D(1,0,0))); - QVERIFY(visitor.verifySegment(1, 1,2, QVector3D(1,0,0), QVector3D(1,1,0))); - QVERIFY(visitor.verifySegment(2, 2,3, QVector3D(1,1,0), QVector3D(0,1,0))); - QVERIFY(visitor.verifySegment(3, 3,0, QVector3D(0,1,0), QVector3D(0,0,0))); + QVERIFY(visitor.verifySegment(0, 0,1, Vector3D(0,0,0), Vector3D(1,0,0))); + QVERIFY(visitor.verifySegment(1, 1,2, Vector3D(1,0,0), Vector3D(1,1,0))); + QVERIFY(visitor.verifySegment(2, 2,3, Vector3D(1,1,0), Vector3D(0,1,0))); + QVERIFY(visitor.verifySegment(3, 3,0, Vector3D(0,1,0), Vector3D(0,0,0))); } void testVisitLineLoopIndexed() @@ -643,10 +643,10 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(4)); - QVERIFY(visitor.verifySegment(0, 0,1, QVector3D(0,0,0), QVector3D(1,0,0))); - QVERIFY(visitor.verifySegment(1, 1,2, QVector3D(1,0,0), QVector3D(1,1,0))); - QVERIFY(visitor.verifySegment(2, 2,3, QVector3D(1,1,0), QVector3D(0,1,0))); - QVERIFY(visitor.verifySegment(3, 3,0, QVector3D(0,1,0), QVector3D(0,0,0))); + QVERIFY(visitor.verifySegment(0, 0,1, Vector3D(0,0,0), Vector3D(1,0,0))); + QVERIFY(visitor.verifySegment(1, 1,2, Vector3D(1,0,0), Vector3D(1,1,0))); + QVERIFY(visitor.verifySegment(2, 2,3, Vector3D(1,1,0), Vector3D(0,1,0))); + QVERIFY(visitor.verifySegment(3, 3,0, Vector3D(0,1,0), Vector3D(0,0,0))); } void testVisitLineAdjacency() @@ -712,7 +712,7 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(1)); - QVERIFY(visitor.verifySegment(0, 1, 2, QVector3D(1,0,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifySegment(0, 1, 2, Vector3D(1,0,0), Vector3D(0,1,0))); } void testVisitLinesAdjacencyIndexed() @@ -805,7 +805,7 @@ private Q_SLOTS: // THEN QCOMPARE(visitor.segmentCount(), uint(1)); - QVERIFY(visitor.verifySegment(0, 1, 2, QVector3D(1,0,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifySegment(0, 1, 2, Vector3D(1,0,0), Vector3D(0,1,0))); } }; diff --git a/tests/auto/render/transform/tst_transform.cpp b/tests/auto/render/transform/tst_transform.cpp index ebb27953d..151baff76 100644 --- a/tests/auto/render/transform/tst_transform.cpp +++ b/tests/auto/render/transform/tst_transform.cpp @@ -49,7 +49,7 @@ private Q_SLOTS: // THEN QCOMPARE(backendTransform.isEnabled(), false); QVERIFY(backendTransform.peerId().isNull()); - QCOMPARE(backendTransform.transformMatrix(), QMatrix4x4()); + QCOMPARE(convertToQMatrix4x4(backendTransform.transformMatrix()), QMatrix4x4()); } void checkCleanupState() @@ -71,7 +71,7 @@ private Q_SLOTS: // THEN QCOMPARE(backendTransform.isEnabled(), false); - QCOMPARE(backendTransform.transformMatrix(), QMatrix4x4()); + QCOMPARE(convertToQMatrix4x4(backendTransform.transformMatrix()), QMatrix4x4()); QCOMPARE(backendTransform.rotation(), QQuaternion()); QCOMPARE(backendTransform.scale(), QVector3D()); QCOMPARE(backendTransform.translation(), QVector3D()); @@ -93,7 +93,7 @@ private Q_SLOTS: // THEN QCOMPARE(backendTransform.isEnabled(), true); QCOMPARE(backendTransform.peerId(), transform.id()); - QCOMPARE(backendTransform.transformMatrix(), transform.matrix()); + QCOMPARE(convertToQMatrix4x4(backendTransform.transformMatrix()), transform.matrix()); QCOMPARE(backendTransform.rotation(), transform.rotation()); QCOMPARE(backendTransform.scale(), transform.scale3D()); QCOMPARE(backendTransform.translation(), transform.translation()); diff --git a/tests/auto/render/triangleboundingvolume/triangleboundingvolume.pro b/tests/auto/render/triangleboundingvolume/triangleboundingvolume.pro index e88a997e2..dcbb2c17f 100644 --- a/tests/auto/render/triangleboundingvolume/triangleboundingvolume.pro +++ b/tests/auto/render/triangleboundingvolume/triangleboundingvolume.pro @@ -7,3 +7,4 @@ QT += 3dcore 3dcore-private 3drender 3drender-private testlib CONFIG += testcase SOURCES += tst_triangleboundingvolume.cpp + diff --git a/tests/auto/render/triangleboundingvolume/tst_triangleboundingvolume.cpp b/tests/auto/render/triangleboundingvolume/tst_triangleboundingvolume.cpp index df375e777..b037c461f 100644 --- a/tests/auto/render/triangleboundingvolume/tst_triangleboundingvolume.cpp +++ b/tests/auto/render/triangleboundingvolume/tst_triangleboundingvolume.cpp @@ -47,43 +47,43 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::TriangleBoundingVolume volume = Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), - QVector3D(), - QVector3D(), - QVector3D()); + Vector3D(), + Vector3D(), + Vector3D()); // THEN QCOMPARE(volume.id(), Qt3DCore::QNodeId()); - QCOMPARE(volume.a(), QVector3D()); - QCOMPARE(volume.b(), QVector3D()); - QCOMPARE(volume.c(), QVector3D()); + QCOMPARE(volume.a(), Vector3D()); + QCOMPARE(volume.b(), Vector3D()); + QCOMPARE(volume.c(), Vector3D()); QCOMPARE(volume.type(), Qt3DRender::RayCasting::QBoundingVolume::Triangle); } void transformed_data() { - QTest::addColumn<QVector3D>("a"); - QTest::addColumn<QVector3D>("b"); - QTest::addColumn<QVector3D>("c"); + QTest::addColumn<Vector3D>("a"); + QTest::addColumn<Vector3D>("b"); + QTest::addColumn<Vector3D>("c"); - QTest::addColumn<QVector3D>("transformedA"); - QTest::addColumn<QVector3D>("transformedB"); - QTest::addColumn<QVector3D>("transformedC"); + QTest::addColumn<Vector3D>("transformedA"); + QTest::addColumn<Vector3D>("transformedB"); + QTest::addColumn<Vector3D>("transformedC"); QTest::newRow("onFarPlane") - << QVector3D(-1.0, 1.0, 0.0) - << QVector3D(0.0, -1.0, 0.0) - << QVector3D(1.0, 1.0, 0.0) - << QVector3D(-1.0, 1.0, -40.0) - << QVector3D(0.0, -1.0, -40.0) - << QVector3D(1.0, 1.0, -40.0); + << Vector3D(-1.0, 1.0, 0.0) + << Vector3D(0.0, -1.0, 0.0) + << Vector3D(1.0, 1.0, 0.0) + << Vector3D(-1.0, 1.0, -40.0) + << Vector3D(0.0, -1.0, -40.0) + << Vector3D(1.0, 1.0, -40.0); QTest::newRow("onNearPlane") - << QVector3D(-1.0, 1.0, 40.0) - << QVector3D(0.0, -1.0, 40.0) - << QVector3D(1.0, 1.0, 40.0) - << QVector3D(-1.0, 1.0, 0.0) - << QVector3D(0.0, -1.0, 0.0) - << QVector3D(1.0, 1.0, 0.0); + << Vector3D(-1.0, 1.0, 40.0) + << Vector3D(0.0, -1.0, 40.0) + << Vector3D(1.0, 1.0, 40.0) + << Vector3D(-1.0, 1.0, 0.0) + << Vector3D(0.0, -1.0, 0.0) + << Vector3D(1.0, 1.0, 0.0); } @@ -91,12 +91,12 @@ private Q_SLOTS: void transformed() { // GIVEN - QFETCH(QVector3D, a); - QFETCH(QVector3D, b); - QFETCH(QVector3D, c); - QFETCH(QVector3D, transformedA); - QFETCH(QVector3D, transformedB); - QFETCH(QVector3D, transformedC); + QFETCH(Vector3D, a); + QFETCH(Vector3D, b); + QFETCH(Vector3D, c); + QFETCH(Vector3D, transformedA); + QFETCH(Vector3D, transformedB); + QFETCH(Vector3D, transformedC); Qt3DRender::Render::TriangleBoundingVolume volume(Qt3DCore::QNodeId(), a, b, @@ -111,7 +111,7 @@ private Q_SLOTS: camera.setUpVector(QVector3D(0.0f, 1.0f, 0.0f)); camera.setViewCenter(QVector3D(0.0f, 0.0f, 0.0f)); - const QMatrix4x4 viewMatrix = camera.viewMatrix(); + const Matrix4x4 viewMatrix(camera.viewMatrix()); // WHEN volume.transform(viewMatrix); @@ -125,61 +125,61 @@ private Q_SLOTS: void intersects_data() { QTest::addColumn<Qt3DRender::RayCasting::QRay3D>("ray"); - QTest::addColumn<QVector3D>("a"); - QTest::addColumn<QVector3D>("b"); - QTest::addColumn<QVector3D>("c"); - QTest::addColumn<QVector3D>("uvw"); + QTest::addColumn<Vector3D>("a"); + QTest::addColumn<Vector3D>("b"); + QTest::addColumn<Vector3D>("c"); + QTest::addColumn<Vector3D>("uvw"); QTest::addColumn<float>("t"); QTest::addColumn<bool>("isIntersecting"); const float farPlaneDistance = 40.0; QTest::newRow("halfway_center") - << Qt3DRender::RayCasting::QRay3D(QVector3D(), QVector3D(0.0, 0.0, 1.0), farPlaneDistance) - << QVector3D(3.0, 1.5, 20.0) - << QVector3D(0.0, -1.5, 20.0) - << QVector3D(-3, 1.5, 20.0) - << QVector3D(0.25, 0.5, 0.25) + << Qt3DRender::RayCasting::QRay3D(Vector3D(), Vector3D(0.0, 0.0, 1.0), farPlaneDistance) + << Vector3D(3.0, 1.5, 20.0) + << Vector3D(0.0, -1.5, 20.0) + << Vector3D(-3, 1.5, 20.0) + << Vector3D(0.25, 0.5, 0.25) << 0.5f << true; QTest::newRow("miss_halfway_center_too_short") - << Qt3DRender::RayCasting::QRay3D(QVector3D(), QVector3D(0.0, 0.0, 1.0), farPlaneDistance * 0.25f) - << QVector3D(3.0, 1.5, 20.0) - << QVector3D(0.0, -1.5, 20.0) - << QVector3D(-3, 1.5, 20.0) - << QVector3D() + << Qt3DRender::RayCasting::QRay3D(Vector3D(), Vector3D(0.0, 0.0, 1.0), farPlaneDistance * 0.25f) + << Vector3D(3.0, 1.5, 20.0) + << Vector3D(0.0, -1.5, 20.0) + << Vector3D(-3, 1.5, 20.0) + << Vector3D() << 0.0f << false; QTest::newRow("far_center") - << Qt3DRender::RayCasting::QRay3D(QVector3D(), QVector3D(0.0, 0.0, 1.0), farPlaneDistance) - << QVector3D(3.0, 1.5, 40.0) - << QVector3D(0.0, -1.5, 40.0) - << QVector3D(-3, 1.5, 40.0) - << QVector3D(0.25, 0.5, 0.25) + << Qt3DRender::RayCasting::QRay3D(Vector3D(), Vector3D(0.0, 0.0, 1.0), farPlaneDistance) + << Vector3D(3.0, 1.5, 40.0) + << Vector3D(0.0, -1.5, 40.0) + << Vector3D(-3, 1.5, 40.0) + << Vector3D(0.25, 0.5, 0.25) << 1.0f << true; QTest::newRow("near_center") - << Qt3DRender::RayCasting::QRay3D(QVector3D(), QVector3D(0.0, 0.0, 1.0), 1.0f) - << QVector3D(3.0, 1.5, 0.0) - << QVector3D(0.0, -1.5, 0.0) - << QVector3D(-3, 1.5, 0.0) - << QVector3D(0.25, 0.5, 0.25) + << Qt3DRender::RayCasting::QRay3D(Vector3D(), Vector3D(0.0, 0.0, 1.0), 1.0f) + << Vector3D(3.0, 1.5, 0.0) + << Vector3D(0.0, -1.5, 0.0) + << Vector3D(-3, 1.5, 0.0) + << Vector3D(0.25, 0.5, 0.25) << 0.0f << true; QTest::newRow("above_miss_center") - << Qt3DRender::RayCasting::QRay3D(QVector3D(0.0, 2.0, 0.0), QVector3D(0.0, 2.0, 1.0), 1.0f) - << QVector3D(3.0, 1.5, 0.0) - << QVector3D(0.0, -1.5, 0.0) - << QVector3D(-3, 1.5, 0.0) - << QVector3D() + << Qt3DRender::RayCasting::QRay3D(Vector3D(0.0, 2.0, 0.0), Vector3D(0.0, 2.0, 1.0), 1.0f) + << Vector3D(3.0, 1.5, 0.0) + << Vector3D(0.0, -1.5, 0.0) + << Vector3D(-3, 1.5, 0.0) + << Vector3D() << 0.0f << false; QTest::newRow("below_miss_center") - << Qt3DRender::RayCasting::QRay3D(QVector3D(0.0, -2.0, 0.0), QVector3D(0.0, -2.0, 1.0), 1.0f) - << QVector3D(3.0, 1.5, 0.0) - << QVector3D(0.0, -1.5, 0.0) - << QVector3D(-3, 1.5, 0.0) - << QVector3D() + << Qt3DRender::RayCasting::QRay3D(Vector3D(0.0, -2.0, 0.0), Vector3D(0.0, -2.0, 1.0), 1.0f) + << Vector3D(3.0, 1.5, 0.0) + << Vector3D(0.0, -1.5, 0.0) + << Vector3D(-3, 1.5, 0.0) + << Vector3D() << 0.0f << false; } @@ -188,15 +188,15 @@ private Q_SLOTS: { // GIVEN QFETCH(Qt3DRender::RayCasting::QRay3D, ray); - QFETCH(QVector3D, a); - QFETCH(QVector3D, b); - QFETCH(QVector3D, c); - QFETCH(QVector3D, uvw); + QFETCH(Vector3D, a); + QFETCH(Vector3D, b); + QFETCH(Vector3D, c); + QFETCH(Vector3D, uvw); QFETCH(float, t); QFETCH(bool, isIntersecting); // WHEN - QVector3D tmp_uvw; + Vector3D tmp_uvw; float tmp_t; const bool shouldBeIntersecting = Qt3DRender::Render::intersectsSegmentTriangle(ray, a, b, c, diff --git a/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp b/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp index c6db3f62d..2f6d283be 100644 --- a/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp +++ b/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp @@ -353,10 +353,10 @@ private Q_SLOTS: QVector<Qt3DRender::Render::TriangleBoundingVolume *> v = QVector<Qt3DRender::Render::TriangleBoundingVolume *>() - << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), QVector3D(0, 1, 0), QVector3D(1, 0, -1), QVector3D(-1, 0, -1)) - << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), QVector3D(-1, 0, -1), QVector3D(1, 0, -1), QVector3D(0, 0, 1)) - << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), QVector3D(0, 0, 1), QVector3D(0, 1, 0), QVector3D(-1, 0, -1)) - << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), QVector3D(0, 1, 0), QVector3D(0, 0, 1), QVector3D(1, 0, -1)); + << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), Vector3D(0, 1, 0), Vector3D(1, 0, -1), Vector3D(-1, 0, -1)) + << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), Vector3D(-1, 0, -1), Vector3D(1, 0, -1), Vector3D(0, 0, 1)) + << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), Vector3D(0, 0, 1), Vector3D(0, 1, 0), Vector3D(-1, 0, -1)) + << new Qt3DRender::Render::TriangleBoundingVolume(Qt3DCore::QNodeId(), Vector3D(0, 1, 0), Vector3D(0, 0, 1), Vector3D(1, 0, -1)); QTest::newRow("indexedMesh") << customIndexedGeometryRenderer() << v; QTest::newRow("nonIndexedMesh") << customNonIndexedGeometryRenderer() << v; diff --git a/tests/auto/render/trianglevisitor/tst_trianglevisitor.cpp b/tests/auto/render/trianglevisitor/tst_trianglevisitor.cpp index 9b6481423..6a9be5e13 100644 --- a/tests/auto/render/trianglevisitor/tst_trianglevisitor.cpp +++ b/tests/auto/render/trianglevisitor/tst_trianglevisitor.cpp @@ -49,7 +49,7 @@ public: } - virtual void visit(uint andx, const QVector3D &a, uint bndx, const QVector3D &b, uint cndx, const QVector3D &c) + virtual void visit(uint andx, const Vector3D &a, uint bndx, const Vector3D &b, uint cndx, const Vector3D &c) { m_triangles.push_back(TestTriangle(andx, a, bndx, b, cndx, c)); } @@ -69,7 +69,7 @@ public: return m_triangles.size(); } - bool verifyTriangle(uint triangle, uint andx, uint bndx, uint cndx, QVector3D a, QVector3D b, QVector3D c) const + bool verifyTriangle(uint triangle, uint andx, uint bndx, uint cndx, Vector3D a, Vector3D b, Vector3D c) const { if (triangle >= uint(m_triangles.size())) return false; @@ -89,13 +89,13 @@ private: struct TestTriangle { uint abcndx[3]; - QVector3D abc[3]; + Vector3D abc[3]; TestTriangle() { abcndx[0] = abcndx[1] = abcndx[2] = uint(-1); } - TestTriangle(uint andx, const QVector3D &a, uint bndx, const QVector3D &b, uint cndx, const QVector3D &c) + TestTriangle(uint andx, const Vector3D &a, uint bndx, const Vector3D &b, uint cndx, const Vector3D &c) { abcndx[0] = andx; abcndx[1] = bndx; @@ -220,8 +220,8 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 2); - QVERIFY(visitor.verifyTriangle(0, 2,1,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 5,4,3, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(0, 2,1,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 5,4,3, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); } void testVisitTrianglesIndexed() @@ -331,11 +331,11 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 5); - QVERIFY(visitor.verifyTriangle(0, 2,1,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 5,4,3, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(2, 0,1,5, QVector3D(0,0,1), QVector3D(1,0,0), QVector3D(0,1,0))); - QVERIFY(visitor.verifyTriangle(3, 2,3,4, QVector3D(0,1,0), QVector3D(0,0,1), QVector3D(1,0,0))); - QVERIFY(visitor.verifyTriangle(4, 4,2,0, QVector3D(1,0,0), QVector3D(0,1,0), QVector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(0, 2,1,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 5,4,3, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(2, 0,1,5, Vector3D(0,0,1), Vector3D(1,0,0), Vector3D(0,1,0))); + QVERIFY(visitor.verifyTriangle(3, 2,3,4, Vector3D(0,1,0), Vector3D(0,0,1), Vector3D(1,0,0))); + QVERIFY(visitor.verifyTriangle(4, 4,2,0, Vector3D(1,0,0), Vector3D(0,1,0), Vector3D(0,0,1))); } void testVisitTriangleStrip() @@ -407,10 +407,10 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 4); - QVERIFY(visitor.verifyTriangle(0, 2,1,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 3,2,1, QVector3D(0,0,1), QVector3D(0,1,0), QVector3D(1,0,0))); - QVERIFY(visitor.verifyTriangle(2, 4,3,2, QVector3D(1,0,0), QVector3D(0,0,1), QVector3D(0,1,0))); - QVERIFY(visitor.verifyTriangle(3, 5,4,3, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(0, 2,1,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 3,2,1, Vector3D(0,0,1), Vector3D(0,1,0), Vector3D(1,0,0))); + QVERIFY(visitor.verifyTriangle(2, 4,3,2, Vector3D(1,0,0), Vector3D(0,0,1), Vector3D(0,1,0))); + QVERIFY(visitor.verifyTriangle(3, 5,4,3, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); } void testVisitTriangleStripIndexed() @@ -517,14 +517,14 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 8); - QVERIFY(visitor.verifyTriangle(0, 2,1,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 3,2,1, QVector3D(0,0,1), QVector3D(0,1,0), QVector3D(1,0,0))); - QVERIFY(visitor.verifyTriangle(2, 4,3,2, QVector3D(1,0,0), QVector3D(0,0,1), QVector3D(0,1,0))); - QVERIFY(visitor.verifyTriangle(3, 5,4,3, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(4, 0,1,5, QVector3D(0,0,1), QVector3D(1,0,0), QVector3D(0,1,0))); - QVERIFY(visitor.verifyTriangle(5, 4,0,1, QVector3D(1,0,0), QVector3D(0,0,1), QVector3D(1,0,0))); - QVERIFY(visitor.verifyTriangle(6, 3,4,0, QVector3D(0,0,1), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(7, 2,3,4, QVector3D(0,1,0), QVector3D(0,0,1), QVector3D(1,0,0))); + QVERIFY(visitor.verifyTriangle(0, 2,1,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 3,2,1, Vector3D(0,0,1), Vector3D(0,1,0), Vector3D(1,0,0))); + QVERIFY(visitor.verifyTriangle(2, 4,3,2, Vector3D(1,0,0), Vector3D(0,0,1), Vector3D(0,1,0))); + QVERIFY(visitor.verifyTriangle(3, 5,4,3, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(4, 0,1,5, Vector3D(0,0,1), Vector3D(1,0,0), Vector3D(0,1,0))); + QVERIFY(visitor.verifyTriangle(5, 4,0,1, Vector3D(1,0,0), Vector3D(0,0,1), Vector3D(1,0,0))); + QVERIFY(visitor.verifyTriangle(6, 3,4,0, Vector3D(0,0,1), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(7, 2,3,4, Vector3D(0,1,0), Vector3D(0,0,1), Vector3D(1,0,0))); } void testVisitTriangleFan() @@ -596,10 +596,10 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 4); - QVERIFY(visitor.verifyTriangle(0, 2,1,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 3,2,0, QVector3D(0,0,1), QVector3D(0,1,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(2, 4,3,0, QVector3D(1,0,0), QVector3D(0,0,1), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(3, 5,4,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(0, 2,1,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 3,2,0, Vector3D(0,0,1), Vector3D(0,1,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(2, 4,3,0, Vector3D(1,0,0), Vector3D(0,0,1), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(3, 5,4,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); } void testVisitTriangleFanIndexed() @@ -700,10 +700,10 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 4); - QVERIFY(visitor.verifyTriangle(0, 2,1,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 3,2,0, QVector3D(0,0,1), QVector3D(0,1,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(2, 4,3,0, QVector3D(1,0,0), QVector3D(0,0,1), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(3, 5,4,0, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(0, 2,1,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 3,2,0, Vector3D(0,0,1), Vector3D(0,1,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(2, 4,3,0, Vector3D(1,0,0), Vector3D(0,0,1), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(3, 5,4,0, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,0,1))); } void testVisitTrianglesAdjacency() @@ -775,7 +775,7 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 1); - QVERIFY(visitor.verifyTriangle(0, 4,2,0, QVector3D(1,0,0), QVector3D(0,1,0), QVector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(0, 4,2,0, Vector3D(1,0,0), Vector3D(0,1,0), Vector3D(0,0,1))); } void testVisitTrianglesAdjacencyIndexed() @@ -883,8 +883,8 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 2); - QVERIFY(visitor.verifyTriangle(0, 4,2,0, QVector3D(1,0,0), QVector3D(0,1,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 3,0,5, QVector3D(0,0,1), QVector3D(0,0,1), QVector3D(0,1,0))); + QVERIFY(visitor.verifyTriangle(0, 4,2,0, Vector3D(1,0,0), Vector3D(0,1,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 3,0,5, Vector3D(0,0,1), Vector3D(0,0,1), Vector3D(0,1,0))); } void testVisitTriangleStripAdjacency() @@ -969,8 +969,8 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 2); - QVERIFY(visitor.verifyTriangle(0, 4,2,0, QVector3D(1,0,0), QVector3D(0,1,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 6,4,2, QVector3D(1,1,1), QVector3D(1,0,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifyTriangle(0, 4,2,0, Vector3D(1,0,0), Vector3D(0,1,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 6,4,2, Vector3D(1,1,1), Vector3D(1,0,0), Vector3D(0,1,0))); } void testVisitTriangleStripAdjacencyIndexed() @@ -1074,8 +1074,8 @@ private Q_SLOTS: // THEN QVERIFY(visitor.triangleCount() == 2); - QVERIFY(visitor.verifyTriangle(0, 4,2,0, QVector3D(1,0,0), QVector3D(0,1,0), QVector3D(0,0,1))); - QVERIFY(visitor.verifyTriangle(1, 5,4,2, QVector3D(0,1,0), QVector3D(1,0,0), QVector3D(0,1,0))); + QVERIFY(visitor.verifyTriangle(0, 4,2,0, Vector3D(1,0,0), Vector3D(0,1,0), Vector3D(0,0,1))); + QVERIFY(visitor.verifyTriangle(1, 5,4,2, Vector3D(0,1,0), Vector3D(1,0,0), Vector3D(0,1,0))); } }; diff --git a/tests/auto/render/uniform/tst_uniform.cpp b/tests/auto/render/uniform/tst_uniform.cpp index b8578b294..213646369 100644 --- a/tests/auto/render/uniform/tst_uniform.cpp +++ b/tests/auto/render/uniform/tst_uniform.cpp @@ -107,7 +107,7 @@ private Q_SLOTS: } { // GIVEN - UniformValue v(QVector3D(572.0f, 355.0f, 383.0f)); + UniformValue v(Vector3D(572.0f, 355.0f, 383.0f)); // THEN QCOMPARE(v.constData<float>()[0], 572.0f); QCOMPARE(v.constData<float>()[1], 355.0f); @@ -116,7 +116,7 @@ private Q_SLOTS: } { // GIVEN - UniformValue v(QVector4D(355.0f, 383.0f, 1340.0f, 1603.0f)); + UniformValue v(Vector4D(355.0f, 383.0f, 1340.0f, 1603.0f)); // THEN QCOMPARE(v.constData<float>()[0], 355.0f); QCOMPARE(v.constData<float>()[1], 383.0f); @@ -340,7 +340,7 @@ private Q_SLOTS: void checkComparison() { // GIVEN - const UniformValue v1(QVector3D(454.0f, 883.0f, 572.0f)); + const UniformValue v1(Vector3D(454.0f, 883.0f, 572.0f)); UniformValue v2(454.0f); // THEN @@ -348,13 +348,13 @@ private Q_SLOTS: QVERIFY(v1 != v2); // WHEN - v2 = UniformValue::fromVariant(QVector3D(454.0f, 883.0f, 572.0f)); + v2 = UniformValue::fromVariant(QVariant::fromValue(Vector3D(454.0f, 883.0f, 572.0f))); // THEN QVERIFY(v1 == v2); QVERIFY(!(v1 != v2)); // WHEN - v2 = UniformValue::fromVariant(QVector3D(454.0f, 883.0f, 572.0f)); + v2 = UniformValue::fromVariant(QVariant::fromValue(Vector3D(454.0f, 883.0f, 572.0f))); // THEN QVERIFY(v1 == v2); QVERIFY(!(v1 != v2)); diff --git a/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp b/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp index c076aa21e..67ddccd9b 100644 --- a/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp +++ b/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp @@ -179,7 +179,8 @@ private Q_SLOTS: // THEN // See scene file to find translation - QCOMPARE(backendShaderData->getTransformedProperty(QLatin1String("eyePosition"), camera->viewMatrix()).value<QVector3D>(), camera->viewMatrix() * (QVector3D(1.0f, 1.0f, 1.0f) + QVector3D(0.0f, 5.0f, 0.0f))); + QCOMPARE(backendShaderData->getTransformedProperty(QLatin1String("eyePosition"), Matrix4x4(camera->viewMatrix())).value<Vector3D>(), + Matrix4x4(camera->viewMatrix()) * (Vector3D(1.0f, 1.0f, 1.0f) + Vector3D(0.0f, 5.0f, 0.0f))); } void checkRunModelToWorld() @@ -219,7 +220,8 @@ private Q_SLOTS: // THEN // See scene file to find translation - QCOMPARE(backendShaderData->getTransformedProperty(QLatin1String("position"), camera->viewMatrix()).value<QVector3D>(), QVector3D(1.0f, 1.0f, 1.0f) + QVector3D(5.0f, 5.0f, 5.0f)); + QCOMPARE(backendShaderData->getTransformedProperty(QLatin1String("position"), Matrix4x4(camera->viewMatrix())).value<Vector3D>(), + Vector3D(1.0f, 1.0f, 1.0f) + Vector3D(5.0f, 5.0f, 5.0f)); } }; |