Класс 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)
Выполняет заданную команду command в движке аспектов. Допустимые команды:
- "list aspects"
Возвращает ответ на команду.
void QAspectEngine::processFrame()
Если используется ручной режим выполнения, эта функция выполняет задачи для каждого аспекта. Она блокирующая и не вернется, пока все задачи не будут завершены.
Если используется QRenderAspect,
void QAspectEngine::registerAspect(Qt3DCore::QAbstractAspect *aspect)
Регистрирует новый aspect в AspectManager. QAspectEngine берет на себя владение аспектом и удалит его при его разрегистрации.
void QAspectEngine::registerAspect(const QString &name)
Регистрирует новый аспект в AspectManager на основе его name Использует текущую фабрику аспектов для создания фактического экземпляра аспекта.
Qt3DCore::QEntityPtr QAspectEngine::rootEntity() const
Возвращает корневой объект движка аспектов.
См. также setRootEntity().
void QAspectEngine::setRootEntity(Qt3DCore::QEntityPtr root)
Устанавливает root-объект для движка аспектов.
См. также rootEntity().
void QAspectEngine::unregisterAspect(Qt3DCore::QAbstractAspect *aspect)
Разрегистрирует и удаляет заданный aspect.
void QAspectEngine::unregisterAspect(const QString &name)
Разрегистрирует и удаляет аспект с заданным name.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qt3dcore-qaspectengine.html