summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qgeometryrenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/frontend/qgeometryrenderer.cpp')
-rw-r--r--src/render/frontend/qgeometryrenderer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/render/frontend/qgeometryrenderer.cpp b/src/render/frontend/qgeometryrenderer.cpp
index 16ff01fe2..a74fcc579 100644
--- a/src/render/frontend/qgeometryrenderer.cpp
+++ b/src/render/frontend/qgeometryrenderer.cpp
@@ -254,6 +254,21 @@ void QGeometryRenderer::copy(const QNode *ref)
d_func()->m_functor = other->d_func()->m_functor;
}
+void QGeometryRenderer::sceneChangeEvent(const QSceneChangePtr &e)
+{
+ Q_D(QGeometryRenderer);
+ QScenePropertyChangePtr change = qSharedPointerCast<QScenePropertyChange>(e);
+ if (change->type() == NodeUpdated && change->propertyName() == QByteArrayLiteral("geometry")) {
+ QGeometry *backendGeometry = change->value().value<QGeometry *>();
+ QGeometry *frontendGeometry = static_cast<QGeometry *>(QNode::clone(backendGeometry));
+ if (frontendGeometry != Q_NULLPTR)
+ d->insertTree(frontendGeometry);
+ setGeometry(frontendGeometry);
+ }
+}
+
+
+
} // Qt3D
QT_END_NAMESPACE