diff options
Diffstat (limited to 'examples/qt3d/assimp/main.cpp')
-rw-r--r-- | examples/qt3d/assimp/main.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/examples/qt3d/assimp/main.cpp b/examples/qt3d/assimp/main.cpp index f0b8b6fbc..a637d47ae 100644 --- a/examples/qt3d/assimp/main.cpp +++ b/examples/qt3d/assimp/main.cpp @@ -50,6 +50,7 @@ class SceneHelper : public QObject public: Q_INVOKABLE QObject *findEntity(Qt3DRender::QSceneLoader *loader, const QString &name); + Q_INVOKABLE QObject *findComponent(Qt3DCore::QEntity *entity, const QString &componentMetatype); Q_INVOKABLE void addListEntry(const QVariant &list, QObject *entry); }; @@ -70,6 +71,19 @@ QObject *SceneHelper::findEntity(Qt3DRender::QSceneLoader *loader, const QString return root->findChild<Qt3DCore::QEntity *>(name); } +QObject *SceneHelper::findComponent(Qt3DCore::QEntity *entity, const QString &componentMetatype) +{ + Q_ASSERT(entity); + Qt3DCore::QComponentList components = entity->components(); + Q_FOREACH (Qt3DCore::QComponent *component, components) { + qDebug() << component->metaObject()->className(); + if (component->metaObject()->className() == componentMetatype) { + return component; + } + } + return Q_NULLPTR; +} + void SceneHelper::addListEntry(const QVariant &list, QObject *entry) { QQmlListReference ref = list.value<QQmlListReference>(); |