Класс 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) |
[read-only] 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 загруженного объекта с objectName, соответствующим entityName. Если объект имеет несколько соответствующих компонентов, возвращается первый совпавший в списке компонентов объекта. Если совпадения нет, возвращается указатель null.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
Qt3DCore::QEntity *QSceneLoader::entity(const QString &entityName) const
Возвращает загруженный объект с objectName , соответствующим параметру entityName. Если несколько объектов имеют одинаковое имя, не определено, какой из них будет возвращён, но всегда будет один и тот же.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_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.0/qt3drender-qsceneloader.html