QPickingSettings 类
class Qt3DRender::QPickingSettingsQPickingSettings 类指定了如何处理实体选择。了解更多...
头文件 | #include <QPickingSettings> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
由 | PickingSettings |
继承自 | Qt3DCore::QNode |
公共类型
枚举 | FaceOrientationPickingMode { FrontFace, BackFace, FrontAndBackFace } |
枚举 | PickMethod { BoundingVolumePicking, TrianglePicking, LinePicking, PointPicking, PrimitivePicking } |
枚举 | 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。
成员类型文档
枚举 QPickingSettings::FaceOrientationPickingMode
指定面朝向如何影响三角形拾取
常数 | 值 | 描述 |
---|---|---|
Qt3DRender::QPickingSettings::FrontFace | 0x01 | 仅拾取正面三角形(默认)。 |
Qt3DRender::QPickingSettings::BackFace | 0x02 | 仅拾取背面三角形。 |
Qt3DRender::QPickingSettings::FrontAndBackFace | 0x03 | 同时拾取正面和背面三角形。 |
枚举 QPickingSettings::PickMethod
指定拾取方法。
常数 | 值 | 描述 |
---|---|---|
Qt3DRender::QPickingSettings::BoundingVolumePicking | 0x00 | 如果拾取射线与实体的边界体积相交,则认为已拾取实体(默认)。 |
Qt3DRender::QPickingSettings::TrianglePicking | 0x01 | 如果拾取射线与实体网格组件的任何三角形相交,则认为已拾取实体。 |
Qt3DRender::QPickingSettings::LinePicking | 0x02 | 如果拾取射线与实体网格组件的任何边相交,则认为已拾取实体。 |
Qt3DRender::QPickingSettings::PointPicking | 0x04 | 如果拾取射线与实体网格组件的任何点相交,则认为已拾取实体。 |
Qt3DRender::QPickingSettings::PrimitivePicking | TrianglePicking | LinePicking | PointPicking | 如果拾取射线与实体网格组件的任何点、边或三角形相交,则认为已拾取实体。 |
枚举 QPickingSettings::PickResultMode
指定拾取结果中包含的内容。
常数 | 值 | 描述 |
---|---|---|
Qt3DRender::QPickingSettings::NearestPick | 0 | 只有与拾取射线原点相交的最近实体被拾取(默认)。 |
Qt3DRender::QPickingSettings::AllPicks | 1 | 拾取与拾取射线相交的所有实体。 |
Qt3DRender::QPickingSettings::NearestPriorityPick | 2 | 选择对象拾取器值最高的实体。如果几个对象拾取器具有相同的优先级,则选择射线上最近的那个。 |
属性文档
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) |
成员函数文档
[槽]
void QPickingSettings::setWorldSpaceTolerance(float worldSpaceTolerance)
将线和点选择的阈值设置为worldSpaceTolerance。
注意:属性 worldSpaceTolerance 的设置器函数。
另请参阅:worldSpaceTolerance()。
float QPickingSettings::worldSpaceTolerance() const
返回线和点精度的worldSpaceTolerance
注意:属性worldSpaceTolerance的获取器函数。
另请参阅:setWorldSpaceTolerance()。
© 2024 Qt公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可协议版本1.3许可的。Qt和相关商标是Qt公司(芬兰)及其它在世界各地的商标。所有其他商标归其各自所有者所有。