Класс QAspectEngine
класс Qt3DCore::QAspectEngineОтвечает за обработку всех подклассов QAbstractAspect, которые были зарегистрированы в сцене. Подробнее...
| Заголовок: | #include <Qt3DCore/QAspectEngine> |
| CMake: | find_package(Qt6 COMPONENTS 3dcore REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3dcore) |
| qmake: | QT += 3dcore |
| Наследует: | QObject |
Открытые функции
| QAspectEngine(QObject *parent = nullptr) | |
| virtual | ~QAspectEngine() |
| Qt3DCore::QAbstractAspect * | aspect(const QString &name) const |
| QList<Qt3DCore::QAbstractAspect *> | aspects() const |
| QVariant | executeCommand(const QString &command) |
| void | processFrame() |
| void | registerAspect(Qt3DCore::QAbstractAspect *aspect) |
| void | registerAspect(const QString &name) |
| Qt3DCore::QEntityPtr | rootEntity() const |
| void | setRootEntity(Qt3DCore::QEntityPtr root) |
| void | unregisterAspect(Qt3DCore::QAbstractAspect *aspect) |
| void | unregisterAspect(const QString &name) |
Связанные нечлены
| QEntityPtr |
Подробное описание
Цикл работы Qt3D управляется Qt3DRender::QAspectEngine.
Подклассы Qt3DCore::QAbstractAspect могут быть зарегистрированы, вызвав Qt3DCore::QAspectEngine::registerAspect(), который позаботится о регистрации аспекта, а в свою очередь вызовет Qt3DCore::QAbstractAspect::onRegistered();
Цикл моделирования запускается как только корневой Qt3DCore::QEntity устанавливается на Qt3DCore::QAspectEngine. За этим следует вызов onEngineStartup() для каждого аспекта, чтобы они могли начать свою работу по моделированию.
Цикл моделирования останавливается, когда корневой сущность устанавливается в Qt3DCore::QEntityPtr(). Это вызывает onEngineShutdown() для каждого аспекта, чтобы они могли остановить выполнение своей работы по моделированию.
Установка новой корректной корневой сущности снова запустит цикл моделирования.
Документация по функциям-членам
QAspectEngine::QAspectEngine(QObject *parent = nullptr)
Создает новый QAspectEngine с parent.
[virtual] QAspectEngine::~QAspectEngine()
Удаляет движок.
Qt3DCore::QAbstractAspect *QAspectEngine::aspect(const QString &name) const
Возвращает аспект, соответствующий name
Примечание: Требуется, чтобы аспект был зарегистрирован по имени
QList<Qt3DCore::QAbstractAspect *> QAspectEngine::aspects() const
Возвращает аспекты, принадлежащие движку аспектов.
QVariant QAspectEngine::executeCommand(const QString &command)
Выполняет заданную команду в движке аспектов. Допустимые команды:
- "list aspects"
Возвращает ответ на команду.
void QAspectEngine::processFrame()
При использовании ручного режима выполнения эта функция выполняет задачи для каждого аспекта. Она блокирующая и не вернётся, пока все задачи не будут завершены.
Если вы используете QRenderAspect,
void QAspectEngine::registerAspect(Qt3DCore::QAbstractAspect *aspect)
Регистрирует новый aspekt в AspectManager. QAspectEngine принимает на себя владение аспектом и удалит его, когда аспект будет отписан.
void QAspectEngine::registerAspect(const QString &name)
Регистрирует новый аспект в AspectManager на основе его имени. Использует текущую фабрику аспектов для создания фактического экземпляра аспекта.
Qt3DCore::QEntityPtr QAspectEngine::rootEntity() const
Возвращает корневую сущность движка аспектов.
См. также setRootEntity().
void QAspectEngine::setRootEntity(Qt3DCore::QEntityPtr root)
Устанавливает корневую сущность для движка аспектов.
См. также rootEntity().
void QAspectEngine::unregisterAspect(Qt3DCore::QAbstractAspect *aspect)
Отписывает и удаляет заданный aspekt.
void QAspectEngine::unregisterAspect(const QString &name)
Отписывает и удаляет аспект с заданным именем.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3dcore-qaspectengine.html