Qt3DRender::QPickingSettings Class
class Qt3DRender::QPickingSettingsQPickingSettings 类指定如何处理实体拾取。更多
头文件: | #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 } |
属性
- faceOrientationPickingMode : FaceOrientationPickingMode
- pickMethod : PickMethod
- pickResultMode : PickResultMode
- worldSpaceTolerance : float
公共功能
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) |
详细说明
拾取设置决定了实体拾取的处理方式。有关实体选取的更多详情,请参阅QObjectPicker 和QRayCaster 组件文档。
使用QObjectPicker 组件时,选取由鼠标事件触发。
使用QRayCaster 或QScreenRayCaster 组件时,可由应用程序明确触发选取。
在这两种情况下,都会在场景中投射一条射线,寻找与射线相交的几何体。
另请参阅 QObjectPicker,QPickEvent,QPickTriangleEvent,QRayCaster 和QScreenRayCaster 。
成员类型文档
enum QPickingSettings::FaceOrientationPickingMode
指定面的方向如何影响三角形拾取
常数 | 值 | 说明 |
---|---|---|
Qt3DRender::QPickingSettings::FrontFace | 0x01 | 只选取正面的三角形(默认)。 |
Qt3DRender::QPickingSettings::BackFace | 0x02 | 只选取背面三角形。 |
Qt3DRender::QPickingSettings::FrontAndBackFace | 0x03 | 同时选取正面和背面的三角形。 |
enum QPickingSettings::PickMethod
指定提取方法。
常数 | 值 | 说明 |
---|---|---|
Qt3DRender::QPickingSettings::BoundingVolumePicking | 0x00 | 如果拾取射线与实体的边界体相交,则认为拾取了实体(默认值)。 |
Qt3DRender::QPickingSettings::TrianglePicking | 0x01 | 如果拾取光线与实体网格组件的任何三角形相交,则认为拾取了实体。 |
Qt3DRender::QPickingSettings::LinePicking | 0x02 | 如果拾取光线与实体网格组件的任意边缘相交,则认为拾取了实体。 |
Qt3DRender::QPickingSettings::PointPicking | 0x04 | 如果拾取光线与实体网格组件的任意点相交,则认为拾取了实体。 |
Qt3DRender::QPickingSettings::PrimitivePicking | TrianglePicking | LinePicking | PointPicking | 如果拾取光线与实体网格组件的任何点、边或三角形相交,则视为拾取了实体。 |
enum QPickingSettings::PickResultMode
指定拾取结果中包含的内容。
常数 | 值 | 说明 |
---|---|---|
Qt3DRender::QPickingSettings::NearestPick | 0 | 只选取与选取射线原点相交的最近实体(默认)。 |
Qt3DRender::QPickingSettings::AllPicks | 1 | 拾取与拾取射线相交的所有实体。 |
Qt3DRender::QPickingSettings::NearestPriorityPick | 2 | 选择对象选取器值最高的实体。如果多个对象选取器的优先级相同,则选取射线上最近的一个。 |
另请参阅 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.