diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2024-04-29 10:35:51 +0200 |
---|---|---|
committer | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2024-05-14 20:06:17 +0200 |
commit | 8181d2874e2f3825a22fef667b2f5f5b3784dee9 (patch) | |
tree | faa336f43f5bfaaef79bc48af4af103b63ca889c /tests/auto/qml | |
parent | 31804e3b193b6bdf22694452136e3fe114d15f26 (diff) |
Add PlanarTransform object to facilitate 2D transforms
The existing function for creating a non-identity matrix4x4 requires
all of the 16 values to be specified. That is needlessly cumbersome in
the common case of a 2D (planar) transform. So add a new interface
singleton object to hold invokable methods that simplify specifying
such transforms in qml, avoiding exposing the full complexity of the
underlying 4x4 matrix in the api.
Change-Id: I8a94099da5c94f5483e6b46280c6101c6d3f6dc3
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'tests/auto/qml')
-rw-r--r-- | tests/auto/qml/qqmlvaluetypes/data/matrix4x4_invokables.qml | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/auto/qml/qqmlvaluetypes/data/matrix4x4_invokables.qml b/tests/auto/qml/qqmlvaluetypes/data/matrix4x4_invokables.qml index c28901956d..1827b57ca9 100644 --- a/tests/auto/qml/qqmlvaluetypes/data/matrix4x4_invokables.qml +++ b/tests/auto/qml/qqmlvaluetypes/data/matrix4x4_invokables.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick Item { property bool success: false @@ -6,6 +6,7 @@ Item { property variant m1: Qt.matrix4x4(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4) property variant m2: Qt.matrix4x4(5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8) property variant m3: Qt.matrix4x4(123,22,6,42,55,54,67,77,777,1,112,22,55,6696,77,777) + property matrix4x4 m4: PlanarTransform.fromAffineMatrix(1, 2, 3, 4, 5, 6) property variant v1: Qt.vector4d(1,2,3,4) property variant v2: Qt.vector3d(1,2,3) property real factor: 2.23 @@ -101,6 +102,7 @@ Item { if (m1.transposed() != Qt.matrix4x4(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)) success = false; if (m1.fuzzyEquals(m2)) success = false; if (!m1.fuzzyEquals(m2, 10)) success = false; + if (m4 != Qt.matrix4x4(1, 3, 0, 5, 2, 4, 0, 6, 0, 0, 1, 0, 0, 0, 0, 1)) success = false; if (!testTransformation()) success = false; if (!testMatrixMapping()) success = false; } |