Qt3DRender::QPickingSettings Class

class Qt3DRender::QPickingSettings

QPickingSettings 类指定如何处理实体拾取。更多

头文件: #include <QPickingSettings>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
在 QML 中: PickingSettings
继承: Qt3DCore::QNode
状态:已废弃

公共类型

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

属性

公共功能

Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode() const
Qt3DRender::QPickingSettings::PickMethod pickMethod() const
Qt3DRender::QPickingSettings::PickResultMode pickResultMode() const
float worldSpaceTolerance() const

公共插槽

void setFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)
void setPickMethod(Qt3DRender::QPickingSettings::PickMethod pickMethod)
void setPickResultMode(Qt3DRender::QPickingSettings::PickResultMode pickResultMode)
void setWorldSpaceTolerance(float worldSpaceTolerance)

信号

void faceOrientationPickingModeChanged(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)
void pickMethodChanged(Qt3DRender::QPickingSettings::PickMethod pickMethod)
void pickResultModeChanged(Qt3DRender::QPickingSettings::PickResultMode pickResult)
void worldSpaceToleranceChanged(float worldSpaceTolerance)

详细说明

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

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

使用QRayCasterQScreenRayCaster 组件时,可由应用程序明确触发选取。

在这两种情况下,都会在场景中投射一条射线,寻找与射线相交的几何体。

另请参阅 QObjectPicker,QPickEvent,QPickTriangleEvent,QRayCasterQScreenRayCaster

成员类型文档

enum QPickingSettings::FaceOrientationPickingMode

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

常数说明
Qt3DRender::QPickingSettings::FrontFace0x01只选取正面的三角形(默认)。
Qt3DRender::QPickingSettings::BackFace0x02只选取背面三角形。
Qt3DRender::QPickingSettings::FrontAndBackFace0x03同时选取正面和背面的三角形。

enum QPickingSettings::PickMethod

指定提取方法。

常数说明
Qt3DRender::QPickingSettings::BoundingVolumePicking0x00如果拾取射线与实体的边界体相交,则认为拾取了实体(默认值)。
Qt3DRender::QPickingSettings::TrianglePicking0x01如果拾取光线与实体网格组件的任何三角形相交,则认为拾取了实体。
Qt3DRender::QPickingSettings::LinePicking0x02如果拾取光线与实体网格组件的任意边缘相交,则认为拾取了实体。
Qt3DRender::QPickingSettings::PointPicking0x04如果拾取光线与实体网格组件的任意点相交,则认为拾取了实体。
Qt3DRender::QPickingSettings::PrimitivePickingTrianglePicking | LinePicking | PointPicking如果拾取光线与实体网格组件的任何点、边或三角形相交,则视为拾取了实体。

enum QPickingSettings::PickResultMode

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

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

另请参阅 Qt3DRender::QPickEvent

属性文档

faceOrientationPickingMode : FaceOrientationPickingMode

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

访问功能

Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode() const
void setFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)

通知信号

void faceOrientationPickingModeChanged(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)

pickMethod : PickMethod

保存当前的拾取方法。

默认情况下,出于性能考虑,光线投射将使用边界体拾取。但是,如果一个小物体被后面的大物体包围,这可能会导致意想不到的结果。

三角形选取会产生精确的结果,但计算成本较高。

访问功能

Qt3DRender::QPickingSettings::PickMethod pickMethod() const
void setPickMethod(Qt3DRender::QPickingSettings::PickMethod pickMethod)

通知信号

void pickMethodChanged(Qt3DRender::QPickingSettings::PickMethod pickMethod)

pickResultMode : PickResultMode

保存当前的提取结果模式。

默认情况下,只为最靠近摄像机的实体生成拾取结果。

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

当设置拾取方法为NearestPriorityPick 时,将为最近的最高优先级拾取器触发事件。当某个元素总是被选中时,即使它前面有其他元素,也可以使用这种方法。

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

访问功能:

Qt3DRender::QPickingSettings::PickResultMode pickResultMode() const
void setPickResultMode(Qt3DRender::QPickingSettings::PickResultMode pickResultMode)

通知信号

void pickResultModeChanged(Qt3DRender::QPickingSettings::PickResultMode pickResult)

worldSpaceTolerance : float

保存模型空间坐标中的阈值,用于评估线和点的拾取。

访问功能:

float worldSpaceTolerance() const
void setWorldSpaceTolerance(float worldSpaceTolerance)

通知信号:

void worldSpaceToleranceChanged(float worldSpaceTolerance)

成员函数 文档

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

将用于线和点拾取的阈值设置为worldSpaceTolerance

注: 属性worldSpaceTolerance 的设置函数。

另请参阅 worldSpaceTolerance() 。

float QPickingSettings::worldSpaceTolerance() const

返回线和点的精度 worldSpaceTolerance

注: 属性 worldSpaceTolerance 的获取函数。

另请参阅 setWorldSpaceTolerance().

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.