From 569d101f56aa18bfde1fb6b6c52d53b76a11c637 Mon Sep 17 00:00:00 2001
From: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Date: Fri, 28 Jun 2019 10:26:10 +0200
Subject: [PATCH] QDemonCamera: fix calculation error for positions other than
 0,0

---
 src/quick3d/qdemoncamera.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/quick3d/qdemoncamera.cpp b/src/quick3d/qdemoncamera.cpp
index e742b154..3167b233 100644
--- a/src/quick3d/qdemoncamera.cpp
+++ b/src/quick3d/qdemoncamera.cpp
@@ -166,12 +166,12 @@ QVector2D QDemonCamera::worldToViewport(const QVector3D &worldPos) const
         return QVector2D(-1, -1);
 
     // Convert from left-handed to right-handed
-    QVector3D worldPosRightHand = worldPos * QVector3D(0, 0, -1);
+    QVector4D worldPosRightHand(worldPos.x(), worldPos.y(), -worldPos.z(), 1);
 
     // Transform position
     const QMatrix4x4 worldToCamera = m_cameraNode->globalTransform.inverted();
     QMatrix4x4 projectionViewMatrix = m_cameraNode->projection * worldToCamera;
-    QVector4D pos4d = mat44::transform(projectionViewMatrix, QVector4D(worldPosRightHand, 1));
+    QVector4D pos4d = mat44::transform(projectionViewMatrix, worldPosRightHand);
 
     // Check if the position is visible in the viewport
     if (pos4d.w() <= 0)
-- 
GitLab