Класс QAbstractRayCaster
class Qt3DRender::QAbstractRayCasterАбстрактный базовый класс для лучевого кастинга в 3D-сценах. Подробнее...
| Заголовок: | #include <QAbstractRayCaster> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С момента: | Qt 5.11 |
| Инициализируется из: | AbstractRayCaster |
| Наследует: | Qt3DCore::QComponent |
| Наследуется от: |
Типы публичного доступа
| Перечисление | FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers } |
| Перечисление | RunMode { Continuous, SingleShot } |
Свойства
- filterMode : FilterMode
- hits : const Hits
- runMode : RunMode
Публичные функции
| void | addLayer(Qt3DRender::QLayer *layer) |
| Qt3DRender::QAbstractRayCaster::FilterMode | filterMode() const |
| Qt3DRender::QAbstractRayCaster::Hits | hits() const |
| QList<Qt3DRender::QLayer *> | layers() const |
| void | removeLayer(Qt3DRender::QLayer *layer) |
| Qt3DRender::QAbstractRayCaster::RunMode | runMode() const |
Публичные слоты
| void | setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
| void | setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
Сигналы
| void | filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
| void | hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits) |
| void | runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
Подробное описание
Qt3DRender::QAbstractRayCaster — это абстрактный базовый класс для кастинга лучей в 3D-сцену. Qt3DRender::QAbstractRayCaster не может быть напрямую инстанцирован, а только через свои подклассы. QAbstractRayCaster определяет общие свойства для всех лучевых кастеров, такие как режим работы и обработка слоёв, оставляя фактические детали лучевого кастинга подклассам.
Лучевой кастинг отличается от пикинга (используя Qt3DRender::QObjectPicker) тем, что не требует событий мыши для запуска.
По умолчанию экземпляры Qt3DRender::QAbstractRayCaster отключены. При включении указанный луч будет проверен на пересечение с объектами в каждом кадре. Свойство QAbstractRayCaster::hits будет обновляться результатами лучевого кастинга, даже если объекты не найдены.
Можно использовать Qt3DRender::QPickingSettings для управления лучевым кастингом, например, для выбора тестируемых примитивов и способа возврата результатов.
Кроме того, компоненты Qt3DRender::QLayer могут использоваться для управления тем, как сущности или подграфы сущностей реагируют на лучевой кастинг.
Примечание: Компоненты, производные от QAbstractRayCaster, не должны быть общими для нескольких сущностей.
См. также Qt3DRender::QRayCaster, Qt3DRender::QScreenRayCaster, Qt3DRender::QObjectPicker, Qt3DRender::QPickingSettings и Qt3DRender::QNoPicking.
Документация по типам членов
Перечисление QAbstractRayCaster::FilterMode
Определяет правила выбора сущностей для тестирования лучевым кастингом.
| Константа | Значение | Описание |
|---|---|---|
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers |
0 |
Принимать сущности, которые ссылаются на один или несколько объектов QLayer, добавленных в этот QAbstractRayCaster. Это значение по умолчанию |
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers |
1 |
Принимать сущности, которые ссылаются на все объекты QLayer, добавленные в этот QAbstractRayCaster |
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers |
2 |
Игнорировать сущности, которые ссылаются на один или несколько объектов QLayer, добавленных в этот QAbstractRayCaster |
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers |
3 |
Игнорировать сущности, которые ссылаются на все объекты QLayer, добавленные в этот QAbstractRayCaster |
Перечисление QAbstractRayCaster::RunMode
Это перечисление определяет, как часто выполняется лучевой кастинг
| Константа | Значение | Описание |
|---|---|---|
Qt3DRender::QAbstractRayCaster::Continuous |
0 |
Лучевой кастинг выполняется в каждом кадре, пока компонент включен. |
Qt3DRender::QAbstractRayCaster::SingleShot |
1 |
Лучевой кастинг выполняется один раз, после чего компонент отключается. Это значение по умолчанию |
Документация по свойствам
filterMode : FilterMode
Содержит режим фильтрации, определяющий сущности, которые должны быть выбраны для тестов лучевого отбрасывания.
Значение по умолчанию — AcceptMatchingLayers.
Функции доступа:
| Qt3DRender::QAbstractRayCaster::FilterMode | filterMode() const |
| void | setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
Сигнал уведомления:
| void | filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
[read-only] hits : const Hits
Содержит результаты последнего теста лучевого отбрасывания в виде вектора экземпляров Qt3DRender::QRayCasterHit.
Обратите внимание, что даже если последовательные тесты возвращают точно такие же результаты (или пустые результаты), уведомление об изменении будет выводиться при каждом тесте.
Функции доступа:
| Qt3DRender::QAbstractRayCaster::Hits | hits() const |
Сигнал уведомления:
| void | hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits) |
runMode : RunMode
Содержит режим выполнения, управляющий частотой выполнения тестов лучевого отбрасывания.
Если установлено значение SingleShot (по умолчанию), при включении компонента будет выполнен один тест лучевого отбрасывания, и компонент автоматически отключится.
Если установлено значение Continuous, тесты лучевого отбрасывания будут выполняться при каждой отрисовке фрейма, пока компонент включён.
Функции доступа:
| Qt3DRender::QAbstractRayCaster::RunMode | runMode() const |
| void | setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
Сигнал уведомления:
| void | runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
Документация по членам-функциям
void QAbstractRayCaster::addLayer(Qt3DRender::QLayer *layer)
Добавить layer в текущий список слоёв
QList<Qt3DRender::QLayer *> QAbstractRayCaster::layers() const
Возвращает текущий список слоёв
void QAbstractRayCaster::removeLayer(Qt3DRender::QLayer *layer)
Удалить layer из текущего списка слоёв
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3drender-qabstractraycaster.html