QSceneLoader Class | Qt 3D 5.12.11

- Qt 5.12
- Qt 3D
- C++ Classes
- QSceneLoader
- Qt 5.12.11 Reference Documentation

# QSceneLoader Class

(Qt3DRender::QSceneLoader)

Provides the facility to load an existing Scene. More...

Header: | #include <QSceneLoader>
qmake: | QT += 3drender
Since: | Qt 5.7
Instantiated By: | SceneLoader
Inherits: | Qt3DCore::QComponent

- List of all members, including inherited members
- Obsolete members

## Public Types

enum | ComponentType { UnknownComponent, GeometryRendererComponent, TransformComponent, MaterialComponent, LightComponent, CameraLensComponent }
enum | Status { None, Loading, Ready, Error }

## Properties

- source : QUrl
- status : const Status

- 1 property inherited from Qt3DCore::QComponent
- 3 properties inherited from Qt3DCore::QNode
- 1 property inherited from QObject

## Public Functions

| QSceneLoader(Qt3DCore::QNode *parent = nullptr)
Qt3DCore::QComponent * | component(const QString &entityName, Qt3DRender::QSceneLoader::ComponentType componentType) const
Qt3DCore::QEntity * | entity(const QString &entityName) const
QStringList | entityNames() const
QUrl | source() const
Qt3DRender::QSceneLoader::Status | status() const

- 2 public functions inherited from Qt3DCore::QComponent
- 13 public functions inherited from Qt3DCore::QNode
- 31 public functions inherited from QObject

## Public Slots

void | setSource(const QUrl &arg)

- 1 public slot inherited from Qt3DCore::QComponent
- 3 public slots inherited from Qt3DCore::QNode
- 1 public slot inherited from QObject

## Signals

void | sourceChanged(const QUrl &source)
void | statusChanged(Qt3DRender::QSceneLoader::Status status)

- 3 signals inherited from Qt3DCore::QComponent
- 4 signals inherited from Qt3DCore::QNode
- 2 signals inherited from QObject

## Static Public Members

const QMetaObject | staticMetaObject

- 9 static public members inherited from QObject

### Additional Inherited Members

- 2 protected functions inherited from Qt3DCore::QNode
- 9 protected functions inherited from QObject

## Detailed Description

Provides the facility to load an existing Scene.

Given a 3D source file, the Qt3DRender::QSceneLoader will try to parse it and build a tree of Qt3DCore::QEntity objects with proper Qt3DRender::QGeometryRenderer, Qt3DCore::QTransform and Qt3DRender::QMaterial components.

The loader will try to determine the best material to be used based on the properties of the model file. If you wish to use a custom material, you will have to traverse the tree and replace the default associated materials with yours.

As the name implies, Qt3DRender::QSceneLoader loads a complete scene subtree. If you wish to load a single piece of geometry, you should rather use the Qt3DRender::QMesh instead.

Qt3DRender::QSceneLoader internally relies on the use of plugins to support a wide variety of 3D file formats. Here is a list of formats that are supported by Qt3D.

Note: this component shouldn't be shared among several Qt3DCore::QEntity instances. Undefined behavior will result.

See also Qt3DRender::QMesh and Qt3DRender::QGeometryRenderer.

## Member Type Documentation

### enum QSceneLoader::ComponentType

This enum specifies a component type.

Constant | Value | Description
--- | --- | ---
`Qt3DRender::QSceneLoader::UnknownComponent` | `0` | Unknown component type
`Qt3DRender::QSceneLoader::GeometryRendererComponent` | `1` | Qt3DRender::QGeometryRenderer component
`Qt3DRender::QSceneLoader::TransformComponent` | `2` | Qt3DCore::QTransform component
`Qt3DRender::QSceneLoader::MaterialComponent` | `3` | Qt3DRender::QMaterial component
`Qt3DRender::QSceneLoader::LightComponent` | `4` | Qt3DRender::QAbstractLight component
`Qt3DRender::QSceneLoader::CameraLensComponent` | `5` | Qt3DRender::QCameraLens component

### enum QSceneLoader::Status

This enum identifies the state of loading

Constant | Value | Description
--- | --- | ---
`Qt3DRender::QSceneLoader::None` | `0` | The Qt3DRender::QSceneLoader hasn't been used yet.
`Qt3DRender::QSceneLoader::Loading` | `1` | The Qt3DRender::QSceneLoader is currently loading the scene file.
`Qt3DRender::QSceneLoader::Ready` | `2` | The Qt3DRender::QSceneLoader successfully loaded the scene file.
`Qt3DRender::QSceneLoader::Error` | `3` | The Qt3DRender::QSceneLoader encountered an error while loading the scene file.

## Property Documentation

### source : QUrl

Holds the url to the source to be loaded.

Access functions:

QUrl | source() const
void | setSource(const QUrl &arg)

Notifier signal:

void | sourceChanged(const QUrl &source)

### status : const Status

Holds the status of scene loading.

- SceneLoader.None
- SceneLoader.Loading
- SceneLoader.Ready
- SceneLoader.Error

Access functions:

Qt3DRender::QSceneLoader::Status | status() const

Notifier signal:

void | statusChanged(Qt3DRender::QSceneLoader::Status status)

See also Qt3DRender::QSceneLoader::Status.

## Member Function Documentation

### QSceneLoader::QSceneLoader(Qt3DCore::QNode *parent = nullptr)

The constructor creates an instance with the specified parent.

### Qt3DCore::QComponent *QSceneLoader::component(const QString &entityName, Qt3DRender::QSceneLoader::ComponentType componentType) const

Returns a component matching componentType of a loaded entity with an objectName matching the entityName. If the entity has multiple matching components, the first match in the component list of the entity is returned. If there is no match, a null pointer is returned.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### Qt3DCore::QEntity *QSceneLoader::entity(const QString &entityName) const

Returns a loaded entity with an `objectName` matching the entityName parameter. If multiple entities have the same name, it is undefined which one of them is returned, but it will always be the same one.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### QStringList QSceneLoader::entityNames() const

Returns a list of the `objectNames` of the loaded entities.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.