diff options
Diffstat (limited to 'src/render/backend/transform.cpp')
-rw-r--r-- | src/render/backend/transform.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/render/backend/transform.cpp b/src/render/backend/transform.cpp index 8999acaed..629ef51b3 100644 --- a/src/render/backend/transform.cpp +++ b/src/render/backend/transform.cpp @@ -6,14 +6,16 @@ #include <Qt3DCore/private/qchangearbiter_p.h> #include <Qt3DCore/qtransform.h> #include <Qt3DCore/private/qtransform_p.h> +#include <Qt3DRender/qcamera.h> QT_BEGIN_NAMESPACE -using namespace Qt3DCore; namespace Qt3DRender { namespace Render { +using namespace Qt3DCore; + Transform::Transform() : BackendNode(ReadWrite) , m_rotation() @@ -65,6 +67,13 @@ void Transform::syncFromFrontEnd(const QNode *frontEnd, bool firstTime) m_translation = transform->translation(); if (dirty || firstTime) { + auto camera = qobject_cast<const Qt3DRender::QCamera *>(transform->parentNode()); + if (camera) { + m_viewMatrix = Matrix4x4(camera->viewMatrix()); + m_hasViewMatrix = true; + } else { + m_hasViewMatrix = false; + } updateMatrix(); markDirty(AbstractRenderer::TransformDirty); } |