Spec-Zone.ru › Qt 6.1

Класс QTransform

класс Qt3DCore::QTransform

Используется для выполнения преобразований над мешами. Подробнее...

Заголовок: #include <QTransform>
CMake: find_package(Qt6 COMPONENTS 3dcore REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3dcore)
qmake: QT += 3dcore
С версии: Qt 5.6
Создается из: Transform
Наследует: Qt3DCore::QComponent
  • Список всех членов, включая унаследованные

Свойства

  • matrix : QMatrix4x4
  • rotation : QQuaternion
  • rotationX : float
  • rotationY : float
  • rotationZ : float
  • scale : float
  • scale3D : QVector3D
  • translation : QVector3D
  • worldMatrix : const QMatrix4x4

Открытые функции

QTransform(Qt3DCore::QNode *parent = nullptr)
QMatrix4x4 matrix() const
QQuaternion rotation() const
float rotationX() const
float rotationY() const
float rotationZ() const
float scale() const
QVector3D scale3D() const
QVector3D translation() const
QMatrix4x4 worldMatrix() const

Открытые слоты

void setMatrix(const QMatrix4x4 &matrix)
void setRotation(const QQuaternion &rotation)
void setRotationX(float rotationX)
void setRotationY(float rotationY)
void setRotationZ(float rotationZ)
void setScale(float scale)
void setScale3D(const QVector3D &scale)
void setTranslation(const QVector3D &translation)

Сигналы

void matrixChanged()
void rotationChanged(const QQuaternion &rotation)
void rotationXChanged(float rotationX)
void rotationYChanged(float rotationY)
void rotationZChanged(float rotationZ)
void scale3DChanged(const QVector3D &scale)
void scaleChanged(float scale)
void translationChanged(const QVector3D &translation)
void worldMatrixChanged(const QMatrix4x4 &worldMatrix)

Статические открытые члены

QQuaternion fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
QQuaternion fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2)
QQuaternion fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2, const QVector3D &axis3, float angle3)
QQuaternion fromAxisAndAngle(const QVector3D &axis, float angle)
QQuaternion fromAxisAndAngle(float x, float y, float z, float angle)
QQuaternion fromEulerAngles(const QVector3D &eulerAngles)
QQuaternion fromEulerAngles(float pitch, float yaw, float roll)
QMatrix4x4 rotateAround(const QVector3D &point, float angle, const QVector3D &axis)
QMatrix4x4 rotateFromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)

Подробное описание

Компонент QTransform не может быть совместно использован несколькими QEntity. Преобразование сохраняется как компоненты масштаба QVector3D, вращения QQuaternion и перемещения QVector3D. Преобразования применяются к мешу в указанном порядке. При установке свойства QTransform::matrix оно разлагается на эти компоненты преобразования, и генерируются соответствующие сигналы.

Для настройки QTransform предоставлены несколько вспомогательных функций; fromAxisAndAngle и fromAxesAndAngles могут использоваться для задания вращения вокруг определённых осей, fromEulerAngles для задания вращения на основе углов Эйлера, а rotateAround для вращения объекта вокруг определённой точки относительно локального начала координат.

Документация свойств

matrix : QMatrix4x4

Содержит QMatrix4x4 преобразования.

Примечание: При установке свойства matrix, оно разлагается на компоненты смещения, вращения и масштабирования.

Функции доступа:

QMatrix4x4 matrix() const
void setMatrix(const QMatrix4x4 &matrix)

Сигнал уведомления:

void matrixChanged()

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 : float

Содержит равномерный масштаб преобразования. Если масштаб был установлен с помощью setScale3D, содержит только значение по оси X.

Функции доступа:

float scale() const
void setScale(float scale)

Сигнал уведомления:

void scaleChanged(float scale)

scale3D : QVector3D

Содержит масштаб преобразования в виде QVector3D.

Функции доступа:

QVector3D scale3D() const
void setScale3D(const QVector3D &scale)

Сигнал уведомления:

void scale3DChanged(const QVector3D &scale)

translation : QVector3D

Содержит смещение преобразования в виде QVector3D.

Функции доступа:

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

Сигнал уведомления:

void translationChanged(const QVector3D &translation)

[read-only, since 5.14] worldMatrix : const QMatrix4x4

Содержит матрицу глобального преобразования для преобразования. Предполагается, что компонент QTransform ссылается на QEntity. Это упрощает идентификацию, когда часть QEntity в поддереве была преобразована в глобальной системе координат, даже если локальное преобразование не изменилось.

Это свойство было добавлено в Qt 5.14.

Функции доступа:

QMatrix4x4 worldMatrix() const

Сигнал уведомления:

void worldMatrixChanged(const QMatrix4x4 &worldMatrix)

Документация по членам-функциям

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

Создаёт новый QTransform с parent.

[static invokable, since 5.11] QQuaternion QTransform::fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)

Создаёт QQuaterniom, определяющий вращение по осям xAxis, yAxis и zAxis.

Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.

Эта функция была добавлена в Qt 5.11.

[static invokable] QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2)

Создаёт QQuaternion по осям axis1, angle1, axis2 и angle2. Возвращает полученный QQuaternion.

Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.

[static invokable] QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2, const QVector3D &axis3, float angle3)

Создаёт QQuaternion по осям axis1, angle1, axis2, angle2, axis3 и angle3. Возвращает полученный QQuaternion.

Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.

[static invokable] QQuaternion QTransform::fromAxisAndAngle(const QVector3D &axis, float angle)

Создаёт QQuaternion по оси axis и углу angle. Возвращает полученный QQuaternion.

Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.

[static invokable] QQuaternion QTransform::fromAxisAndAngle(float x, float y, float z, float angle)

Создаёт QQuaternion по значениям x, y, z и angle. Возвращает полученный QQuaternion.

Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.

[static invokable] QQuaternion QTransform::fromEulerAngles(const QVector3D &eulerAngles)

Создаёт QQuaternion по eulerAngles. Возвращает полученный QQuaternion.

Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.

[static invokable] QQuaternion QTransform::fromEulerAngles(float pitch, float yaw, float roll)

Создаёт QQuaternion по значениям pitch, yaw и roll. Возвращает полученный QQuaternion.

Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.

[static invokable] QMatrix4x4 QTransform::rotateAround(const QVector3D &point, float angle, const QVector3D &axis)

Создаёт матрицу вращения по axis и angle вокруг point. Возвращает полученную QMatrix4x4.

Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.

[static invokable, since 5.11] QMatrix4x4 QTransform::rotateFromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)

Возвращает матрицу вращения, определённую по осям xAxis, yAxis и zAxis.

Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.

Функция добавлена в Qt 5.11.

[since 5.14] QMatrix4x4 QTransform::worldMatrix() const

Возвращает матрицу глобального преобразования, связанную с QTransform, когда она ссылается на QEntity, который может быть частью иерархии QEntity.

Примечание: Функция-геттер для свойства worldMatrix.

Функция добавлена в Qt 5.14.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qt3dcore-qtransform.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API