Qt3DRender::QRayCaster Class
class Qt3DRender::QRayCasterQt3DRender::QRayCaster 用于在3D世界坐标系中执行射线投射测试。更多内容...
| 标题: | #include <qraycaster.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| 在 QML 中: | RayCaster |
| 继承自: | Qt3DRender::QAbstractRayCaster |
| 状态: | 已弃用 |
该类已弃用。我们强烈建议在新代码中避免使用它。
属性
公共函数
公共槽位
| void | setDirection(const QVector3D &direction) |
| void | setLength(float length) |
| void | setOrigin(const QVector3D &origin) |
| void | trigger() |
| void | trigger(const QVector3D &origin, const QVector3D &direction, float length) |
信号
| void | directionChanged(const QVector3D &direction) |
| void | lengthChanged(float length) |
| void | originChanged(const QVector3D &origin) |
另请参阅 QAbstractRayCaster 、QScreenRayCaster 以及QNoPicking 。
属性文档
direction : QVector3D
存储3D光线的方向。该值应为单位向量。
访问函数:
| QVector3D | direction() const |
| void | setDirection(const QVector3D &direction) |
通知器信号:
| void | directionChanged(const QVector3D &direction) |
length : float
存储3D光线的长度。
访问函数:
| float | length() const |
| void | setLength(float length) |
通知信号:
| void | lengthChanged(float length) |
origin : QVector3D
存储3D光线的原点(以局部坐标系表示)。
访问函数:
| QVector3D | origin() const |
| void | setOrigin(const QVector3D &origin) |
通知信号:
| void | originChanged(const QVector3D &origin) |
成员函数文档
[slot] void QRayCaster::setLength(float length)
将光线长度设置为length 。
如果该值小于或等于零,则该光线被视为无限长。
注意: 这是属性length 的设置 函数。
另请参阅 length()。
[slot] void QRayCaster::trigger()
一种便捷的方法,用于启用该组件并使用当前光线触发测试。
注意:此 插槽已被重载。要连接到此插槽:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
rayCaster, qOverload<>(&QRayCaster::trigger));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
rayCaster, [receiver = rayCaster]() { receiver->trigger(); });[slot] void QRayCaster::trigger(const QVector3D &origin, const QVector3D &direction, float length)
一种便捷的方法,用于设置光线细节origin 、direction 和length ,并使组件能够触发测试。
注意:此 插槽已被重载。要连接到此插槽:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
rayCaster, qOverload(&QRayCaster::trigger));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
rayCaster, [receiver = rayCaster](const QVector3D &origin, const QVector3D &direction, float length) { receiver->trigger(origin, direction, length); }); © 2026 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.