diff options
Diffstat (limited to 'src/input')
-rw-r--r-- | src/input/qinputaspect.cpp | 23 | ||||
-rw-r--r-- | src/input/qinputaspect.h | 2 |
2 files changed, 20 insertions, 5 deletions
diff --git a/src/input/qinputaspect.cpp b/src/input/qinputaspect.cpp index e8ac79068..5d2231b6d 100644 --- a/src/input/qinputaspect.cpp +++ b/src/input/qinputaspect.cpp @@ -44,7 +44,8 @@ #include "inputhandler_p.h" #include "keyboardcontroller_p.h" #include "keyboardinput_p.h" - +#include <Qt3DCore/qnodevisitor.h> +#include <Qt3DCore/qscenepropertychange.h> #include <Qt3DInput/qkeyboardcontroller.h> #include <Qt3DInput/qkeyboardinput.h> @@ -75,22 +76,29 @@ QVector<QAspectJobPtr> QInputAspect::jobsToExecute() void QInputAspect::sceneNodeAdded(QSceneChangePtr &e) { - + QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>(); + QNodePtr nodePtr = propertyChange->value().value<QNodePtr>(); + QNode *n = nodePtr.data(); + QNodeVisitor visitor; + visitor.traverse(n, this, &QInputAspect::visitNode, &QInputAspect::visitNode); } void QInputAspect::sceneNodeRemoved(QSceneChangePtr &e) { - + QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>(); + QNodePtr nodePtr = propertyChange->value().value<QNodePtr>(); + QNode *n = nodePtr.data(); + QAbstractAspect::clearBackendNode(n); } void QInputAspect::setRootEntity(QEntity *rootObject) { - + Q_UNUSED(rootObject); } void QInputAspect::onInitialize(const QVariantMap &data) { - + Q_UNUSED(data); } void QInputAspect::onCleanup() @@ -98,6 +106,11 @@ void QInputAspect::onCleanup() } +void QInputAspect::visitNode(QNode *node) +{ + Q_UNUSED(node); +} + } // Qt3D QT_END_NAMESPACE diff --git a/src/input/qinputaspect.h b/src/input/qinputaspect.h index dbf443b1f..7d5f1c715 100644 --- a/src/input/qinputaspect.h +++ b/src/input/qinputaspect.h @@ -67,6 +67,8 @@ private: void onInitialize(const QVariantMap &data) Q_DECL_OVERRIDE; void onCleanup() Q_DECL_OVERRIDE; + void visitNode(QNode *node); + Q_DECLARE_PRIVATE(QInputAspect) }; |