QPickingSettings 类

class Qt3DRender::QPickingSettings

QPickingSettings 类指定了如何处理实体选择。了解更多...

头文件 #include <QPickingSettings>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
PickingSettings
继承自 Qt3DCore::QNode

公共类型

枚举FaceOrientationPickingMode { FrontFace, BackFace, FrontAndBackFace }
枚举PickMethod { BoundingVolumePicking, TrianglePicking, LinePicking, PointPicking, PrimitivePicking }
枚举PickResultMode { NearestPick, AllPicks, NearestPriorityPick }

属性

公共函数

Qt3DRender::QPickingSettings::FaceOrientationPickingModefaceOrientationPickingMode() const
Qt3DRender::QPickingSettings::PickMethodpickMethod() const
Qt3DRender::QPickingSettings::PickResultModepickResultMode() const
floatworldSpaceTolerance() const

公共槽

voidsetFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)
voidsetPickMethod(Qt3DRender::QPickingSettings::PickMethod pickMethod)
voidsetPickResultMode(Qt3DRender::QPickingSettings::PickResultMode pickResultMode)
voidsetWorldSpaceTolerance(float worldSpaceTolerance)

信号

voidfaceOrientationPickingModeChanged(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)
voidpickMethodChanged(Qt3DRender::QPickingSettings::PickMethod pickMethod)
voidpickResultModeChanged(Qt3DRender::QPickingSettings::PickResultMode pickResult)
voidworldSpaceToleranceChanged(float worldSpaceTolerance)

详细说明

拾取设置决定了实体拾取的处理方式。有关实体拾取的更多详细信息,请参阅QObjectPickerQRayCaster组件文档。

使用QObjectPicker组件时,拾取由鼠标事件触发。

使用QRayCasterQScreenRayCaster组件时,拾取可以由应用显式触发。

在这两种情况下,都会通过场景发射一条射线以找到与射线相交的几何图形。

另请参阅QObjectPickerQPickEventQPickTriangleEventQRayCasterQScreenRayCaster

成员类型文档

枚举 QPickingSettings::FaceOrientationPickingMode

指定面朝向如何影响三角形拾取

常数描述
Qt3DRender::QPickingSettings::FrontFace0x01仅拾取正面三角形(默认)。
Qt3DRender::QPickingSettings::BackFace0x02仅拾取背面三角形。
Qt3DRender::QPickingSettings::FrontAndBackFace0x03同时拾取正面和背面三角形。

枚举 QPickingSettings::PickMethod

指定拾取方法。

常数描述
Qt3DRender::QPickingSettings::BoundingVolumePicking0x00如果拾取射线与实体的边界体积相交,则认为已拾取实体(默认)。
Qt3DRender::QPickingSettings::TrianglePicking0x01如果拾取射线与实体网格组件的任何三角形相交,则认为已拾取实体。
Qt3DRender::QPickingSettings::LinePicking0x02如果拾取射线与实体网格组件的任何边相交,则认为已拾取实体。
Qt3DRender::QPickingSettings::PointPicking0x04如果拾取射线与实体网格组件的任何点相交,则认为已拾取实体。
Qt3DRender::QPickingSettings::PrimitivePickingTrianglePicking | LinePicking | PointPicking如果拾取射线与实体网格组件的任何点、边或三角形相交,则认为已拾取实体。

枚举 QPickingSettings::PickResultMode

指定拾取结果中包含的内容。

常数描述
Qt3DRender::QPickingSettings::NearestPick0只有与拾取射线原点相交的最近实体被拾取(默认)。
Qt3DRender::QPickingSettings::AllPicks1拾取与拾取射线相交的所有实体。
Qt3DRender::QPickingSettings::NearestPriorityPick2选择对象拾取器值最高的实体。如果几个对象拾取器具有相同的优先级,则选择射线上最近的那个。

另请参阅Qt3DRender::QPickEvent

属性文档

faceOrientationPickingMode : FaceOrientationPickingMode

指定面朝向如何影响三角形拾取

访问函数

Qt3DRender::QPickingSettings::FaceOrientationPickingModefaceOrientationPickingMode() const
voidsetFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)

通知信号

voidfaceOrientationPickingModeChanged(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)

pickMethod : PickMethod

持有当前拾取方法。

默认情况下,出于性能原因,射线投射将使用边界体积拾取。但是,如果一个小对象被其后面的一个大对象的边界球包住,这可能会导致意外的结果。

三角形选择可以产生准确结果,但计算成本更高。

访问函数

Qt3DRender::QPickingSettings::PickMethodpickMethod() const
voidsetPickMethod(Qt3DRender::QPickingSettings::PickMethod pickMethod)

通知信号

voidpickMethodChanged(Qt3DRender::QPickingSettings::PickMethod pickMethod)

pickResultMode : PickResultMode

保存当前选择结果模式。

默认情况下,仅对最近的实体产生选择结果。

将选择方法设置为AllPicks时,将沿射线触发具有QObjectPicker的所有实体的事件。

将选择方法设置为NearestPriorityPick时,将触发最近的最优先选择器的事件。在给定元素始终被选中,即使其他元素在其前面时,也可以使用此功能。

如果将QObjectPicker分配给具有多个子实体的实体,将触发每个与射线相交的子实体的事件。

访问函数

Qt3DRender::QPickingSettings::PickResultModepickResultMode() const
voidsetPickResultMode(Qt3DRender::QPickingSettings::PickResultMode pickResultMode)

通知信号

voidpickResultModeChanged(Qt3DRender::QPickingSettings::PickResultMode pickResult)

worldSpaceTolerance : float

保存用于评估线和点选择的阈值,以模型空间坐标为单位。

访问函数

floatworldSpaceTolerance() const
voidsetWorldSpaceTolerance(float worldSpaceTolerance)

通知信号

voidworldSpaceToleranceChanged(float worldSpaceTolerance)

成员函数文档

[槽] void QPickingSettings::setWorldSpaceTolerance(float worldSpaceTolerance)

将线和点选择的阈值设置为worldSpaceTolerance

注意:属性 worldSpaceTolerance 的设置器函数。

另请参阅:worldSpaceTolerance()。

float QPickingSettings::worldSpaceTolerance() const

返回线和点精度的worldSpaceTolerance

注意:属性worldSpaceTolerance的获取器函数。

另请参阅:setWorldSpaceTolerance()。

© 2024 Qt公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可协议版本1.3许可的。Qt和相关商标是Qt公司(芬兰)及其它在世界各地的商标。所有其他商标归其各自所有者所有。