Класс QObjectPicker
класс Qt3DRender::QObjectPickerКласс QObjectPicker создаёт компонент, который может использоваться для взаимодействия с QEntity посредством процесса, известного как выбор (пикинг). Подробнее...
| Заголовок: | #include <QObjectPicker> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С тех пор: | Qt 5.6 |
| Инициализируется: | ObjectPicker |
| Наследуется от: | Qt3DCore::QComponent |
Свойства
|
Открытые функции
| bool | containsMouse() const |
| bool | isDragEnabled() const |
| bool | isHoverEnabled() const |
| bool | isPressed() const |
| int | priority() const |
Открытые слоты
| void | setDragEnabled(bool dragEnabled) |
| void | setHoverEnabled(bool hoverEnabled) |
| void | setPriority(int priority) |
Сигналы
| void | clicked(Qt3DRender::QPickEvent *pick) |
| void | containsMouseChanged(bool containsMouse) |
| void | dragEnabledChanged(bool dragEnabled) |
| void | entered() |
| void | exited() |
| void | hoverEnabledChanged(bool hoverEnabled) |
| void | moved(Qt3DRender::QPickEvent *pick) |
| void | pressed(Qt3DRender::QPickEvent *pick) |
| void | pressedChanged(bool pressed) |
| void | priorityChanged(int priority) |
| void | released(Qt3DRender::QPickEvent *pick) |
Подробное описание
Для каждой комбинации представления и камеры выбор выполняет трассировку луча через сцену, чтобы найти сущности, чьи объёмы ограничительной области пересекаются с лучом. Объём ограничительной области вычисляется с использованием значений в буфере атрибутов, указанных свойством boundingVolumePositionAttribute геометрии.
Сигналы pressed(), released(), clicked(), moved(), entered() и exited() генерируются, когда ограничительная область, определяемая свойством pickAttribute, пересекается с лучом.
Большинство сигналов содержат экземпляр QPickEvent. Если QPickingSettings::pickMode() установлено в QPickingSettings::TrianglePicking, фактический тип параметра pick будет QPickTriangleEvent.
Запросы на выбор выполняются при нажатии и отпускании клавиши мыши. Если включен drag, запросы также выполняются при каждом перемещении мыши, пока нажата любая кнопка. Если включена hover, запросы выполняются при каждом перемещении мыши, даже если ни одна кнопка не нажата.
Для обобщённых запросов трассировки лучей см. Qt3DRender::QRayCaster и Qt3DRender::QScreenRayCaster.
Примечание: Экземпляры этого компонента не должны быть общими; несоблюдение этого условия, скорее всего, приведёт к неопределённому поведению.
Примечание: Значение дальнего плака камеры влияет на выбор и приводит к некорректным результатам из-за точности с плавающей запятой, если оно больше ~100 000.
См. также Qt3DRender::QPickingSettings, Qt3DCore::QGeometry, Qt3DCore::QAttribute, Qt3DRender::QPickEvent, Qt3DRender::QPickTriangleEvent и Qt3DRender::QNoPicking.
Документация свойств
[read-only] containsMouse : const bool
Указывает, содержит ли объект пикер в данный момент указатель мыши
Функции доступа:
| bool | containsMouse() const |
Сигнал уведомления:
| void | containsMouseChanged(bool containsMouse) |
dragEnabled : bool
Указывает, разрешен ли перенос
Функции доступа:
| bool | isDragEnabled() const |
| void | setDragEnabled(bool dragEnabled) |
Сигнал уведомления:
| void | dragEnabledChanged(bool dragEnabled) |
hoverEnabled : bool
Указывает, разрешено ли наведение
Функции доступа:
| bool | isHoverEnabled() const |
| void | setHoverEnabled(bool hoverEnabled) |
Сигнал уведомления:
| void | hoverEnabledChanged(bool hoverEnabled) |
[read-only] pressed : const bool
Указывает, нажат ли в данный момент объект пикер
Функции доступа:
| bool | isPressed() const |
Сигнал уведомления:
| void | pressedChanged(bool pressed) |
priority : int
Приоритет, используемый при фильтрации результатов выбора по приоритету, когда QPickingSettings::pickResultMode установлен в QPickingSettings::NearestPriorityPick.
Функции доступа:
| int | priority() const |
| void | setPriority(int priority) |
Сигнал уведомления:
| void | priorityChanged(int priority) |
Документация функций-членов
[signal] void QObjectPicker::clicked(Qt3DRender::QPickEvent *pick)
Этот сигнал испускается, когда ограничивающая область, определенная свойством pickAttribute, пересекается с лучом при щелчке мыши. QPickEvent pick содержит детали события.
[signal] void QObjectPicker::entered()
Этот сигнал испускается, когда ограничивающая область, определенная свойством pickAttribute, пересекается с лучом при входе указателя мыши в область.
[signal] void QObjectPicker::exited()
Этот сигнал испускается, когда ограничивающая область, определенная свойством pickAttribute, пересекается с лучом при выходе указателя мыши из области.
[signal] void QObjectPicker::moved(Qt3DRender::QPickEvent *pick)
Этот сигнал испускается, когда ограничивающая область, определенная свойством pickAttribute, пересекается с лучом при перемещении мыши с нажатой кнопкой. QPickEvent pick содержит детали события.
[signal] void QObjectPicker::pressed(Qt3DRender::QPickEvent *pick)
Этот сигнал испускается, когда ограничивающая область, определенная свойством pickAttribute, пересекается с лучом при нажатии кнопки мыши. QPickEvent pick содержит детали события.
[signal] void QObjectPicker::released(Qt3DRender::QPickEvent *pick)
Этот сигнал испускается, когда ограничивающая область, определенная свойством pickAttribute, пересекается с лучом при отпускании кнопки мыши. QPickEvent pick содержит детали события.
[slot] void QObjectPicker::setDragEnabled(bool dragEnabled)
Устанавливает свойство dragEnabled в значение dragEnabled
Примечание: Функция-сеттер для свойства dragEnabled.
См. также isDragEnabled().
[slot] void QObjectPicker::setHoverEnabled(bool hoverEnabled)
Устанавливает свойство hoverEnabled в значение hoverEnabled
Примечание: Функция-сеттер для свойства hoverEnabled.
См. также isHoverEnabled().
[slot, since 5.13] void QObjectPicker::setPriority(int priority)
Устанавливает приоритет пикера в значение priority. Это используется, когда режим результата выбора в QPickingSettings установлен в QPickingSettings::NearestPriorityPick. Результаты выбора сортируются по наивысшему приоритету и наименьшему расстоянию выбора.
Примечание: Функция-сеттер для свойства priority.
Эта функция была добавлена в Qt 5.13.
См. также priority().
bool QObjectPicker::containsMouse() const
Возвращает true, если объект пикер в данный момент содержит указатель мыши
Примечание: Функция-геттер для свойства containsMouse.
bool QObjectPicker::isDragEnabled() const
Возвращает true, если перенос разрешен
Примечание: Функция-геттер для свойства dragEnabled.
bool QObjectPicker::isHoverEnabled() const
Возвращает true, если наведение разрешено
Примечание: Функция-геттер для свойства hoverEnabled.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3drender-qobjectpicker.html