summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-02 13:20:50 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-04-10 21:09:14 +0000
commit44d04b601e09fe9916686b641b117a1d89c3c9b1 (patch)
tree1a52778adb129a7cb170b8fe90c1ec4c62fa2b50 /src
parent66ff055ea6f3f9d6875b90e2219b71c6313b28b4 (diff)
Render::Transform handles creation
Change-Id: Ib6a7ec403342fc67b9055383ba5d07d47a4d7ea7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/render/backend/transform.cpp12
-rw-r--r--src/render/backend/transform_p.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/src/render/backend/transform.cpp b/src/render/backend/transform.cpp
index 42514493e..abf656b8e 100644
--- a/src/render/backend/transform.cpp
+++ b/src/render/backend/transform.cpp
@@ -42,6 +42,7 @@
#include <Qt3DCore/qscenepropertychange.h>
#include <Qt3DCore/private/qchangearbiter_p.h>
#include <Qt3DCore/qtransform.h>
+#include <Qt3DCore/private/qtransform_p.h>
QT_BEGIN_NAMESPACE
@@ -69,6 +70,17 @@ void Transform::updateFromPeer(Qt3DCore::QNode *peer)
m_enabled = transform->isEnabled();
}
+void Transform::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change)
+{
+ const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QTransformData>>(change);
+ const auto &data = typedChange->data;
+ m_rotation = data.rotation;
+ m_scale = data.scale;
+ m_translation = data.translation;
+ updateMatrix();
+ m_enabled = change->isNodeEnabled();
+}
+
QMatrix4x4 Transform::transformMatrix() const
{
return m_transformMatrix;
diff --git a/src/render/backend/transform_p.h b/src/render/backend/transform_p.h
index 969fc46e9..87d009acc 100644
--- a/src/render/backend/transform_p.h
+++ b/src/render/backend/transform_p.h
@@ -78,6 +78,8 @@ public:
void updateMatrix();
private:
+ void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_FINAL;
+
QMatrix4x4 m_transformMatrix;
QQuaternion m_rotation;
QVector3D m_scale;