Тип QML AbstractRayCaster
Абстрактный базовый класс для расчёта лучей в 3D-сценах. Подробнее...
| Заявление об импорте: | import Qt3D.Render |
| С момента: | Qt 5.11 |
| Создаёт: | QAbstractRayCaster |
Свойства
- filterMode : перечисление
- hits : массив
- runMode : перечисление
Подробное описание
AbstractRayCaster — абстрактный базовый класс для расчёта лучей в 3D-сцене. AbstractRayCaster не может быть напрямую инстанцирован, а скорее через его подклассы. QAbstractRayCaster определяет общие свойства для всех расчётчиков лучей, такие как режим работы и обработка слоёв, оставляя фактические детали расчёта лучей подклассам.
Расчёт лучей отличается от выделения (используя ObjectPicker) тем, что не требует событий мыши для запуска.
По умолчанию экземпляры AbstractRayCaster отключены. При включении заданный луч будет проверяться на пересечение с объектами в каждом кадре. Свойство AbstractRayCaster.hits будет обновлено результатами расчёта лучей, даже если объекты не найдены.
Qt3D.Render::PickingSettings могут использоваться для управления расчётом лучей, например, для выбора проверяемых примитивов и способов возврата результатов.
Кроме того, компоненты Qt3D.Render::Layer могут использоваться для управления тем, как сущности или подграфы сущностей реагируют на расчёт лучей.
Примечание: компоненты, производные от AbstractRayCaster, не должны быть объединены между несколькими сущностями.
См. также Qt3D.Render::RayCaster, Qt3D.Render::ScreenRayCaster, Qt3D.Render::ObjectPicker, Qt3D.Render::PickingSettings и Qt3D.Render::NoPicking.
Документация свойств
filterMode : перечисление
Содержит режим фильтрации, определяющий сущности для выбора при проверке на пересечение луча.
Значение по умолчанию — AbstractRayCaster.AcceptMatchingLayers.
| Постоянная | Описание |
|---|---|
AcceptAnyMatchingLayers |
Принимать сущности, которые ссылаются на один или несколько объектов Layer, добавленных в данный AbstractRayCaster. Это значение по умолчанию |
AcceptAllMatchingLayers |
Принимать сущности, которые ссылаются на все объекты Layer, добавленные в этот AbstractRayCaster |
DiscardAnyMatchingLayers |
Отбрасывать сущности, которые ссылаются на один или несколько объектов Layer, добавленных в данный AbstractRayCaster |
DiscardAllMatchingLayers |
Отбрасывать сущности, которые ссылаются на все объекты Layer, добавленные в этот AbstractRayCaster |
hits : массив
Содержит результаты последней проверки пересечения луча в виде массива JavaScript-объектов. Определения полей объектов указаны ниже.
{
type // enum value of RayCasterHit.HitType
entity // entity that was intersected
distance // distance from ray origin to intersection
localIntersection.x: // coordinate of intersection in the entity's coordinate system
localIntersection.y
localIntersection.z
worldIntersection.x // coordinate of intersection in the model's coordinate system
worldIntersection.y
worldIntersection.z
primitiveIndex // index of the primitive (triangle, line, point) that was intersected;
// (undefined if the picking mode is set to bounding volume)
vertex1Index // index of the first point of the triangle or line that was intersected
// (undefined if the picking mode is set to bounding volume or points)
vertex2Index // index of the second point of the triangle or line that was intersected
// (undefined if the picking mode is set to bounding volume or points)
vertex3Index // index of the second point of the triangle that was intersected
// (undefined if the picking mode is set to bounding volume, points or lines)
} Обратите внимание, что даже если последующие проверки возвращают точно такие же результаты (или пустые), уведомление о изменении будет отправляться при каждой проверке.
runMode : перечисление
Содержит режим работы, контролирующий частоту выполнения проверок на пересечение луча.
| Постоянная | Описание |
|---|---|
Continuous |
Расчёт лучей выполняется в каждом кадре, пока компонент включён. |
SingleShot |
Расчёт лучей выполняется один раз, после чего компонент отключается. Это значение по умолчанию |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qt3d-render-abstractraycaster.html