QJoint Class

(Qt3DCore::QJoint)

Used to transforms parts of skinned meshes. More...

Header: #include <QJoint>
qmake: QT += 3dcore
Since: Qt 5.10
Instantiated By: Joint
Inherits: Qt3DCore::QNode

Properties

Public Functions

QJoint(Qt3DCore::QNode *parent = nullptr)
void addChildJoint(Qt3DCore::QJoint *joint)
QVector<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

Public Slots

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)

Signals

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)

Additional Inherited Members

  • 1 public variable inherited from QObject
  • 10 static public members inherited from QObject
  • 2 protected functions inherited from Qt3DCore::QNode
  • 9 protected functions inherited from QObject
  • 2 protected variables inherited from QObject

Detailed Description

Used to transforms parts of skinned meshes

The QJoint node is used to build skeletons as part of the skinned mesh support in Qt 3D. A joint can be transformed by way of its scale, rotation and translation properties. Any mesh vertices that are bound to the joint will have their transformations updated accordingly.

Property Documentation

inverseBindMatrix : QMatrix4x4

Holds the inverse bind matrix of the joint. This is used to transform vertices from model space into the space of this joint so they can subsequently be multiplied by the joint's global transform to perform the skinning operation.

Access functions:

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

Notifier signal:

void inverseBindMatrixChanged(const QMatrix4x4 &inverseBindMatrix)

name : QString

Access functions:

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

Notifier signal:

void nameChanged(const QString &name)

rotation : QQuaternion

Holds the rotation of the joint as QQuaternion.

Access functions:

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

Notifier signal:

void rotationChanged(const QQuaternion &rotation)

rotationX : float

Holds the x rotation of the joint as an Euler angle.

Access functions:

float rotationX() const
void setRotationX(float rotationX)

Notifier signal:

void rotationXChanged(float rotationX)

rotationY : float

Holds the y rotation of the joint as an Euler angle.

Access functions:

float rotationY() const
void setRotationY(float rotationY)

Notifier signal:

void rotationYChanged(float rotationY)

rotationZ : float

Holds the z rotation of the joint as an Euler angle.

Access functions:

float rotationZ() const
void setRotationZ(float rotationZ)

Notifier signal:

void rotationZChanged(float rotationZ)

scale : QVector3D

Holds the scale of the joint.

Access functions:

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

Notifier signal:

void scaleChanged(const QVector3D &scale)

translation : QVector3D

Holds the translation of the joint as QVector3D.

Access functions:

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

Notifier signal:

void translationChanged(const QVector3D &translation)

Member Function Documentation

QJoint::QJoint(Qt3DCore::QNode *parent = nullptr)

Constructs a new QJoint with parent.

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

Adds joint as a child of this joint. If joint has no parent, then this joint takes ownership of it. Child joints are in the coordinate system of their parent joint.

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

The vector of joints this joint has as children.

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

Removes joint from this joint's list of children. The child joint is not destroyed.

[slot] void QJoint::setToIdentity()

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