diff --git a/src/quick3d/qquick3dscenerootnode_p.h b/src/quick3d/qquick3dscenerootnode_p.h index bf20c5ea21f7c9d05854e279a6bf22543d8966df..f852e6f48e5d395c5cbbd666df2292fb1fb63dfe 100644 --- a/src/quick3d/qquick3dscenerootnode_p.h +++ b/src/quick3d/qquick3dscenerootnode_p.h @@ -48,6 +48,7 @@ class QQuick3DViewport; class QQuick3DSceneRootNode : public QQuick3DNode { + Q_OBJECT public: explicit QQuick3DSceneRootNode(QQuick3DViewport *view3D = nullptr, QQuick3DNode *parent = nullptr); ~QQuick3DSceneRootNode() override; diff --git a/src/quick3d/qquick3dviewport.cpp b/src/quick3d/qquick3dviewport.cpp index a3ddf3ab33467eb56e8c9035aaf700223291ae2a..7cf4be0aaa1cb06483ddd8bafc390e59778111de 100644 --- a/src/quick3d/qquick3dviewport.cpp +++ b/src/quick3d/qquick3dviewport.cpp @@ -499,7 +499,7 @@ void QQuick3DViewport::setImportScene(QQuick3DNode *inScene) return; } - QQuick3DSceneRootNode *rn = dynamic_cast<QQuick3DSceneRootNode *>(scene); + QQuick3DSceneRootNode *rn = qobject_cast<QQuick3DSceneRootNode *>(scene); scene = rn ? rn->view3D()->importScene() : nullptr; } @@ -520,7 +520,7 @@ void QQuick3DViewport::setImportScene(QQuick3DNode *inScene) QQuick3DNode *scene = inScene; while (scene) { - QQuick3DSceneRootNode *rn = dynamic_cast<QQuick3DSceneRootNode *>(scene); + QQuick3DSceneRootNode *rn = qobject_cast<QQuick3DSceneRootNode *>(scene); scene = rn ? rn->view3D()->importScene() : nullptr; if (scene) { @@ -693,7 +693,7 @@ void QQuick3DViewport::updateDynamicTextures() } // if importScene has another import - QQuick3DSceneRootNode *rn = dynamic_cast<QQuick3DSceneRootNode *>(scene); + QQuick3DSceneRootNode *rn = qobject_cast<QQuick3DSceneRootNode *>(scene); scene = rn ? rn->view3D()->importScene() : nullptr; } }