本页内容

Qt3DCore::QJoint Class

class Qt3DCore::QJoint

用于变换带贴图的多边形网格的某些部分。更多...

标题: #include <QJoint>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3DCore)
target_link_libraries(mytarget PRIVATE Qt6::3DCore)
qmake: QT += 3dcore
在 QML 中: Joint
继承自: Qt3DCore::QNode
状态: 已弃用

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

属性

公共函数

QJoint(Qt3DCore::QNode *parent = nullptr)
void addChildJoint(Qt3DCore::QJoint *joint)
QList<Qt3DCore::QJoint *> childJoints() const
QMatrix4x4 inverseBindMatrix() const
QString name() const
void removeChildJoint(Qt3DCore::QJoint *joint)
QQuaternion rotation() const
float rotationX() const
float rotationY() const
float rotationZ() const
QVector3D scale() const
QVector3D translation() const

公共槽

void setInverseBindMatrix(const QMatrix4x4 &inverseBindMatrix)
void setName(const QString &name)
void setRotation(const QQuaternion &rotation)
void setRotationX(float rotationX)
void setRotationY(float rotationY)
void setRotationZ(float rotationZ)
void setScale(const QVector3D &scale)
void setToIdentity()
void setTranslation(const QVector3D &translation)

信号

void inverseBindMatrixChanged(const QMatrix4x4 &inverseBindMatrix)
void nameChanged(const QString &name)
void rotationChanged(const QQuaternion &rotation)
void rotationXChanged(float rotationX)
void rotationYChanged(float rotationY)
void rotationZChanged(float rotationZ)
void scaleChanged(const QVector3D &scale)
void translationChanged(const QVector3D &translation)

详细说明

QJoint 节点用于构建骨骼,是Qt 3D 中蒙皮网格支持功能的一部分。可以通过关节的缩放、旋转和平移属性对其进行变换。与该关节绑定的任何网格顶点,其变换都会相应地更新。

属性文档

inverseBindMatrix : QMatrix4x4

存储该关节的逆绑定矩阵。该矩阵用于将顶点从模型空间变换到该关节的空间中,以便随后将其与该关节的全局变换相乘,从而执行蒙皮操作。

访问函数:

QMatrix4x4 inverseBindMatrix() const
void setInverseBindMatrix(const QMatrix4x4 &inverseBindMatrix)

通知信号:

void inverseBindMatrixChanged(const QMatrix4x4 &inverseBindMatrix)

name : QString

该属性存储关节的名称。

存储关节的名称,可用于在骨骼中识别该关节。

访问函数:

QString name() const
void setName(const QString &name)

通知信号:

void nameChanged(const QString &name)

rotation : QQuaternion

将关节的旋转表示为QQuaternion 。

访问函数:

QQuaternion rotation() const
void setRotation(const QQuaternion &rotation)

通知器信号:

void rotationChanged(const QQuaternion &rotation)

rotationX : float

将关节的x轴旋转作为欧拉角保存。

访问函数:

float rotationX() const
void setRotationX(float rotationX)

通知信号:

void rotationXChanged(float rotationX)

rotationY : float

将关节的y轴旋转作为欧拉角保存。

访问函数:

float rotationY() const
void setRotationY(float rotationY)

通知信号:

void rotationYChanged(float rotationY)

rotationZ : float

将关节的z轴旋转以欧拉角的形式保存。

访问函数:

float rotationZ() const
void setRotationZ(float rotationZ)

通知信号:

void rotationZChanged(float rotationZ)

scale : QVector3D

固定关节的活动范围。

访问功能:

QVector3D scale() const
void setScale(const QVector3D &scale)

通知信号:

void scaleChanged(const QVector3D &scale)

translation : QVector3D

将关节的变换存储为QVector3D 。

访问函数:

QVector3D translation() const
void setTranslation(const QVector3D &translation)

通知信号:

void translationChanged(const QVector3D &translation)

成员函数文档

[explicit] QJoint::QJoint(Qt3DCore::QNode *parent = nullptr)

使用parent 创建一个新的QJoint。

void QJoint::addChildJoint(Qt3DCore::QJoint *joint)

将joint 添加为此关节的子关节。如果joint 没有父关节,则此关节将接管它。子关节位于其父关节的坐标系中。

QList<Qt3DCore::QJoint *> QJoint::childJoints() const

该关节作为父节点所拥有的子节点的向量。

QString QJoint::name() const

返回关节的名称。

注意: 这是属性 name 的获取 函数。

另请参阅 setName()。

void QJoint::removeChildJoint(Qt3DCore::QJoint *joint)

将joint 从该关节的子关节列表中移除。该子关节不会被销毁。

[slot] void QJoint::setToIdentity()

将该关节的变换矩阵设置为单位矩阵。

© 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.