Класс QSceneLoader
класс Qt3DRender::QSceneLoaderПредоставляет средства для загрузки существующей сцены. Подробнее...
| Заголовок: | #include <QSceneLoader> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С тех пор: | Qt 5.7 |
| Инициализируется из: | SceneLoader |
| Наследует: | Qt3DCore::QComponent |
Открытые типы
| перечисление | ComponentType { UnknownComponent, GeometryRendererComponent, TransformComponent, MaterialComponent, LightComponent, CameraLensComponent } |
| перечисление | Status { None, Loading, Ready, Error } |
Свойства
Открытые функции
| 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 |
Открытые слоты
| void | setSource(const QUrl &arg) |
Сигналы
| void | sourceChanged(const QUrl &source) |
| void | statusChanged(Qt3DRender::QSceneLoader::Status status) |
Подробное описание
При заданном 3D-исходном файле, Qt3DRender::QSceneLoader попытается его разобрать и создать дерево объектов Qt3DCore::QEntity с соответствующими компонентами Qt3DRender::QGeometryRenderer, Qt3DCore::QTransform и Qt3DRender::QMaterial.
Загрузчик попытается определить наиболее подходящий материал, основываясь на свойствах файла модели. Если вы хотите использовать пользовательский материал, вам нужно будет пройтись по дереву и заменить связанные по умолчанию материалы своими.
Как следует из названия, Qt3DRender::QSceneLoader загружает полное поддерево сцены. Если вы хотите загрузить одну геометрическую фигуру, используйте вместо этого Qt3DRender::QMesh.
Qt3DRender::QSceneLoader внутренне использует плагины для поддержки широкого спектра форматов 3D-файлов. Вот список форматов, поддерживаемых Qt3D.
Примечание: данный компонент не должен быть общим для нескольких экземпляров Qt3DCore::QEntity. В результате возникнет неопределённое поведение.
См. также Qt3DRender::QMesh и Qt3DRender::QGeometryRenderer.
Документация по типу члена
перечисление QSceneLoader::ComponentType
Это перечисление указывает тип компонента.
| Константа | Значение | Описание |
|---|---|---|
Qt3DRender::QSceneLoader::UnknownComponent |
0 |
Неизвестный тип компонента |
Qt3DRender::QSceneLoader::GeometryRendererComponent |
1 |
Qt3DRender::QGeometryRenderer компонент |
Qt3DRender::QSceneLoader::TransformComponent |
2 |
Qt3DCore::QTransform компонент |
Qt3DRender::QSceneLoader::MaterialComponent |
3 |
Qt3DRender::QMaterial компонент |
Qt3DRender::QSceneLoader::LightComponent |
4 |
Qt3DRender::QAbstractLight компонент |
Qt3DRender::QSceneLoader::CameraLensComponent |
5 |
Qt3DRender::QCameraLens компонент |
перечисление QSceneLoader::Status
Это перечисление определяет состояние загрузки
| Константа | Значение | Описание |
|---|---|---|
Qt3DRender::QSceneLoader::None |
0 |
Qt3DRender::QSceneLoader еще не использовался. |
Qt3DRender::QSceneLoader::Loading |
1 |
Qt3DRender::QSceneLoader в настоящее время загружает файл сцены. |
Qt3DRender::QSceneLoader::Ready |
2 |
Qt3DRender::QSceneLoader успешно загрузил файл сцены. |
Qt3DRender::QSceneLoader::Error |
3 |
Qt3DRender::QSceneLoader столкнулся с ошибкой во время загрузки файла сцены. |
Документация по свойствам
source : QUrl
Содержит URL исходного файла для загрузки.
Функции доступа:
| QUrl | source() const |
| void | setSource(const QUrl &arg) |
Сигнал уведомления:
| void | sourceChanged(const QUrl &source) |
status : const Status
Содержит состояние загрузки сцены.
- SceneLoader.None
- SceneLoader.Loading
- SceneLoader.Ready
- SceneLoader.Error
Функции доступа:
| Qt3DRender::QSceneLoader::Status | status() const |
Сигнал уведомления:
| void | statusChanged(Qt3DRender::QSceneLoader::Status status) |
См. также Qt3DRender::QSceneLoader::Status.
Документация по функции-члену
QSceneLoader::QSceneLoader(Qt3DCore::QNode *parent = nullptr)
Конструктор создает экземпляр со указанным parent.
Qt3DCore::QComponent *QSceneLoader::component(const QString &entityName, Qt3DRender::QSceneLoader::ComponentType componentType) const
Возвращает компонент, соответствующий componentType загруженного объекта с именем объекта, соответствующим entityName. Если объект имеет несколько соответствующих компонентов, возвращается первый совпадающий компонент в списке компонентов объекта. Если совпадений нет, возвращается null-указатель.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] Qt3DCore::QEntity *QSceneLoader::entity(const QString &entityName) const
Возвращает загруженный объект с objectName соответствующим параметру entityName. Если несколько объектов имеют одинаковое имя, не определено, какой из них будет возвращен, но это всегда будет один и тот же.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] QStringList QSceneLoader::entityNames() const
Возвращает список objectNames загруженных объектов.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3drender-qsceneloader.html