Класс QTransform
class 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 |
Свойства
|
Открытые функции
| 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 |
Открытые слоты
Сигналы
Статические открытые члены
Подробное описание
Компонент QTransform не может быть совместно использован несколькими объектами QEntity. Преобразование хранится как компоненты масштаба QVector3D, поворота QQuaternion и перемещения QVector3D. Преобразования применяются к сетке в указанном порядке. При установке свойства QTransform::matrix, оно разлагается на эти компоненты преобразования, и генерируются соответствующие сигналы.
Для настройки QTransform предоставляется несколько вспомогательных функций; fromAxisAndAngle и fromAxesAndAngles могут использоваться для задания поворота вокруг определенных осей, fromEulerAngles может использоваться для задания поворота на основе углов Эйлера, а rotateAround может использоваться для поворота объекта вокруг определенной точки относительно локального начала координат.
Документация свойств
matrix : QMatrix4x4
Содержит QMatrix4x4 преобразования.
Примечание: При установке свойства матрицы, оно разлагается на компоненты смещения, вращения и масштабирования.
Функции доступа:
| 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.
END_OF_DOCUMENT_MARKER
[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.2/qt3dcore-qtransform.html