本页内容

Qt3DRender::QRayCaster Class

class Qt3DRender::QRayCaster

Qt3DRender::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
状态: 已弃用

该类已弃用。我们强烈建议在新代码中避免使用它。

属性

公共函数

QVector3D direction() const
float length() const
QVector3D origin() const

公共槽位

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)

详细说明

3D射线由其起点、方向和长度定义。它将受到其所属实体所应用的变换的影响。

只要该组件处于启用状态,每帧都会执行射线投射检测。hit 属性将根据交点列表进行更新。

另请参阅 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.