Spec-Zone.ru › Qt

Класс 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
Наследуется от:

Qt3DRender::QRayCaster и Qt3DRender::QScreenRayCaster

  • Список всех членов, включая наследуемые

Типы публичного доступа

Перечисление 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API