summaryrefslogtreecommitdiffstats
path: root/examples/qt3d/assimp/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/qt3d/assimp/main.cpp')
-rw-r--r--examples/qt3d/assimp/main.cpp14
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>();