summaryrefslogtreecommitdiffstats
path: root/examples/qt3d/multiviewport/SimpleCamera.qml
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2018-01-24 14:22:15 +0100
committerPaul Lemire <paul.lemire@kdab.com>2018-01-24 15:02:50 +0000
commit1dc0ddf0534180b94c56084117c78232350223b0 (patch)
tree1e84056fb2f6770c70d48ba4a1dde31bd32c74e9 /examples/qt3d/multiviewport/SimpleCamera.qml
parent849d85af835be1592d7d2cd2c5afa5f183ad04f1 (diff)
multiviewport: Adapt SimpleCamera to viewMatrix changes
Change-Id: I3e276e8cd7d754905ed41a80ace19b72eb50175f Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'examples/qt3d/multiviewport/SimpleCamera.qml')
-rw-r--r--examples/qt3d/multiviewport/SimpleCamera.qml11
1 files changed, 9 insertions, 2 deletions
diff --git a/examples/qt3d/multiviewport/SimpleCamera.qml b/examples/qt3d/multiviewport/SimpleCamera.qml
index e1cb95426..20741ae20 100644
--- a/examples/qt3d/multiviewport/SimpleCamera.qml
+++ b/examples/qt3d/multiviewport/SimpleCamera.qml
@@ -65,8 +65,15 @@ Entity {
id: transform
matrix: {
var m = Qt.matrix4x4();
- m.lookAt(root.position, root.viewCenter, root.upVector);
- return m;
+ m.translate(root.position)
+ var zAxis = root.position.minus(root.viewCenter).normalized()
+ var xAxis = root.upVector.crossProduct(zAxis).normalized();
+ var yAxis = zAxis.crossProduct(xAxis);
+ var r = Qt.matrix4x4(xAxis.x, yAxis.x, zAxis.x, 0,
+ xAxis.y, yAxis.y, zAxis.y, 0,
+ xAxis.z, yAxis.z, zAxis.z, 0,
+ 0, 0, 0, 1)
+ return m.times(r);
}
}
}