Тип QML AbstractRayCaster
Абстрактный базовый класс для расчёта лучей в 3D-сценах. Подробнее...
| Заявление об импорте: | import Qt3D.Render 2.0 |
| С тех пор: | 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.0/qml-qt3d-render-abstractraycaster.html