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)

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)

新しい QJoint をparent で構築します。

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

joint をこのジョイントの子として追加する。joint に親がない場合は、このジョイントが所有権を持ちます。子ジョイントは親ジョイントの座標系になります。

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

このジョイントが子として持つジョイントのベクトル。

QString QJoint::name() const

ジョイントの名前を返す。

注: プロパティ名のゲッター関数。

setName()も参照してください

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

このジョイントの子ジョイントリストからjoint を削除します。子ジョイントは破棄されません。

[slot] void QJoint::setToIdentity()

このジョイントの変換行列を同一行列に設定します。

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