PySide6.Qt3DRender.Qt3DRender.QAbstractRayCaster

class QAbstractRayCaster

用于3D场景中光线投射的抽象基类。更多

PySide6.Qt3DRender.Qt3DRender.QAbstractRayCaster 的继承图

继承者: QScreenRayCaster, QRayCaster

概要

属性

方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QAbstractRayCaster 是一个用于将射线投射到3D场景中的抽象基类。QAbstractRayCaster 不能直接实例化,而是通过其子类进行实例化。QAbstractRayCaster 指定了所有射线投射器的通用属性,例如运行模式和图层处理,而将实际的射线投射细节留给子类处理。

射线投射与拾取(使用QObjectPicker)不同,因为它不需要鼠标事件来触发。

默认情况下,QAbstractRayCaster的实例是禁用的。当启用时,指定的射线将在每一帧测试是否与物体相交。hits属性将更新为射线投射的结果,即使没有找到任何物体。

QPickingSettings 可用于控制射线投射,例如测试哪些图元以及如何返回结果。

此外,QLayer 组件可用于控制实体或实体子图如何对射线投射做出反应。

注意

QAbstractRayCaster派生的组件不应在多个实体之间共享。

另请参阅

QRayCaster QScreenRayCaster QObjectPicker QPickingSettings QNoPicking

class RunMode

此枚举指定了射线投射执行的频率

常量

描述

Qt3DRender.QAbstractRayCaster.Continuous

只要组件启用,每帧都会执行射线投射。

Qt3DRender.QAbstractRayCaster.SingleShot

射线投射完成后,组件将自动禁用。这是默认设置

class FilterMode

指定用于选择实体以进行射线投射测试的规则。

常量

描述

Qt3DRender.QAbstractRayCaster.AcceptAnyMatchingLayers

接受引用一个或多个QLayer对象的实体,这些对象已添加到这个QAbstractRayCaster中。这是默认设置

Qt3DRender.QAbstractRayCaster.AcceptAllMatchingLayers

接受引用所有添加到这个QAbstractRayCasterQLayer对象的实体

Qt3DRender.QAbstractRayCaster.DiscardAnyMatchingLayers

丢弃引用一个或多个QLayer对象的实体,这些对象已添加到这个QAbstractRayCaster

Qt3DRender.QAbstractRayCaster.DiscardAllMatchingLayers

丢弃引用所有添加到这个QAbstractRayCasterQLayer对象的实体

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property filterModeᅟ: Qt3DRender.QAbstractRayCaster.FilterMode

保存指定用于射线投射测试的实体选择过滤模式。

默认值为AcceptMatchingLayers。

Access functions:
property hitsᅟ: list of Qt3DRender.QRayCasterHit

保存最后一次射线投射测试的结果,作为QRayCasterHit实例的向量。

请注意,即使连续的测试返回完全相同的结果(或空结果),每次测试都会发出更改通知。

Access functions:
property runModeᅟ: Qt3DRender.QAbstractRayCaster.RunMode

控制射线投射测试执行频率的运行模式。

如果设置为SingleShot(默认值),当组件启用时,将执行一次射线投射测试,并且组件将自动禁用自身。

如果设置为连续,只要组件启用,每帧都会执行射线投射测试。

Access functions:
__init__([parent=None])
Parameters:

parentQNode

addLayer(layer)
Parameters:

QLayer

layer添加到当前图层列表中

filterMode()
Return type:

FilterMode

另请参阅

setFilterMode()

属性 filterModeᅟ 的获取器。

filterModeChanged(filterMode)
Parameters:

filterModeFilterMode

属性 filterModeᅟ 的通知信号。

hits()
Return type:

Qt3DRender.QRayCasterHit 的列表

属性 hitsᅟ 的获取器。

hitsChanged(hits)
Parameters:

hits – Qt3DRender.QRayCasterHit 的列表

属性 hitsᅟ 的通知信号。

layers()
Return type:

Qt3DRender.QLayer 的列表

返回当前的图层列表

removeLayer(layer)
Parameters:

QLayer

从当前图层列表中移除 layer

runMode()
Return type:

RunMode

另请参阅

setRunMode()

属性 runModeᅟ 的获取器。

runModeChanged(runMode)
Parameters:

runModeRunMode

属性 runModeᅟ 的通知信号。

setFilterMode(filterMode)
Parameters:

filterModeFilterMode

另请参阅

filterMode()

属性 filterModeᅟ 的设置器。

setRunMode(runMode)
Parameters:

runModeRunMode

另请参阅

runMode()

属性 runModeᅟ 的设置器。