Тип узла QML
Базовый компонент для объекта, существующего в 3D-сцене. Подробнее...
| Заявление об импорте: | import QtQuick3D |
| Наследуется от: | |
| Наследует: | Affector3D, AxisHelper, Camera, Joint, Light, Loader3D, Model, ParticleEmitter3D, ParticleSystem3D, Repeater3D, RuntimeLoader и Skeleton |
Свойства
- eulerRotation : vector3d
- forward : vector3d
- opacity : real
- pivot : vector3d
- position : vector3d
- right : vector3d
- rotation : quaternion
- scale : vector3d
- scenePosition : vector3d
- sceneRotation : vector3d
- sceneScale : vector3d
- sceneTransform : matrix4x4
- staticFlags : int
- up : vector3d
- visible : bool
- x : real
- y : real
- z : real
Методы
- vector3d mapDirectionFromNode(QtQuick3D::Node node, vector3d localDirection)
- vector3d mapDirectionFromScene(vector3d sceneDirection)
- vector3d mapDirectionToNode(QtQuick3D::Node node, vector3d localDirection)
- vector3d mapDirectionToScene(vector3d localDirection)
- vector3d mapPositionFromNode(QtQuick3D::Node node, vector3d localPosition)
- vector3d mapPositionFromScene(vector3d scenePosition)
- vector3d mapPositionToNode(QtQuick3D::Node node, vector3d localPosition)
- vector3d mapPositionToScene(vector3d localPosition)
- rotate(real degrees, vector3d axis, enumeration space)
Подробное описание
Тип узла служит базовым классом для других пространственных типов, таких как Model, Camera, Light. Эти объекты представляют собой сущность, существующую в 3D-сцене, благодаря наличию позиции и других свойств в 3D-мире. За исключением корневого узла (узлов), все типы узлов преобразуются относительно родительского узла, то есть в локальных координатах. Во многих отношениях тип узла выполняет ту же функцию в сценах Qt Quick 3D, что и Item в сценах Qt Quick.
Помимо типов, производных от узла, можно также размещать другие типы в узле. Это включает экземпляры QObject, где узел просто служит родительским объектом QObject, и элементы Qt Quick.
Оборачивание других объектов для группировки их в компоненты или поддеревья может быть удобным способом, например, для анимации группы узлов как единого целого. Этот фрагмент показывает, как использовать узел для анимации камеры:
Node {
PerspectiveCamera {
position: Qt.vector3d(0, 0, -600)
}
SequentialAnimation on eulerRotation.y {
loops: Animation.Infinite
PropertyAnimation {
duration: 5000
from: 0
to: 360
}
}
} Узел также необходимо использовать при создании сцены вне View3D, например, для переключения сцен на лету или отображения одной и той же сцены на нескольких представлениях.
Node {
id: standAloneScene
DirectionalLight {}
Model {
source: "#Sphere"
materials: [ DefaultMaterial {} ]
}
PerspectiveCamera {
z: 600
}
}
View3D {
importScene: standAloneScene
} Документация свойств
eulerRotation : vector3d
Это свойство содержит значения вращения по осям x, y и z. Эти значения хранятся как vector3d. Порядок вращения предполагается ZXY.
См. также QQuaternion::fromEulerAngles().
[только для чтения] forward : vector3d
Это свойство возвращает нормированный вектор направления вперед узла в пространстве сцены.
См. также up, right и mapDirectionToScene.
opacity : real
Это свойство содержит локальное значение непрозрачности узла. Поскольку объекты Node необязательно видимы, это значение может не иметь никакого эффекта, но это значение наследуется всеми дочерними узлами Node, которые могут быть видимыми.
pivot : vector3d
Это свойство содержит значения поворота по осям x, y и z. Эти значения используются как точки поворота при применении вращений к узлу.
position : vector3d
Это свойство содержит значение сдвига положения в локальной системе координат.
[только для чтения] right : vector3d
Это свойство возвращает нормированный вектор правого направления узла в пространстве сцены.
См. также forward, up и mapDirectionToScene.
rotation : quaternion
Это свойство содержит значения вращения узла. Эти значения хранятся как кватернион.
scale : vector3d
Это свойство содержит значения масштаба по осям x, y и z.
[только для чтения] scenePosition : vector3d
Это свойство возвращает положение узла в пространстве сцены.
Примечание: Это иногда также называют глобальным положением. Но тогда в смысле «глобального в 3D-мире», а не «глобального для экрана или рабочего стола» (что обычно является интерпретацией в других API Qt).
Примечание: положение будет отображаться в той же ориентации, что и узел.
См. также mapPositionToScene.
[только для чтения] sceneRotation : vector3d
Это свойство возвращает вращение узла в пространстве сцены.
[только для чтения] sceneScale : vector3d
Это свойство возвращает масштаб узла в пространстве сцены.
[только для чтения] sceneTransform : matrix4x4
Это свойство возвращает глобальную матрицу преобразования для этого узла.
Примечание: возвращаемое значение будет в правой системе координат.
[с версии 5.15] staticFlags : int
Это свойство определяет флаги статического состояния, которые используются для оценки того, как узел отображается. В настоящее время не выполняет никаких действий, но служит заглушкой для будущей реализации.
Это свойство было добавлено в Qt 5.15.
[только для чтения] up : vector3d
Это свойство возвращает нормированный вектор верхнего направления узла в пространстве сцены.
См. также forward, right и mapDirectionToScene.
visible : bool
Когда это свойство имеет значение true, узел (и его дочерние элементы) могут быть видимы.
x : real
Это свойство содержит значение x перемещения позиции в локальном пространстве координат.
См. также position.
y : real
Это свойство содержит значение y перемещения позиции в локальном пространстве координат.
См. также position.
z : real
Это свойство содержит значение z перемещения позиции в локальном пространстве координат.
См. также position.
Документация по методам
vector3d mapDirectionFromNode(QtQuick3D::Node node, vector3d localDirection)
Преобразует localDirection из локального пространства node в локальное пространство этого узла. Возвращаемое значение не зависит от масштаба или позиции узла (унаследованных).
Примечание: возвращаемое значение будет иметь ту же длину, что и localDirection (т.е. не нормировано).
Примечание: Если node равно null, то localDirection интерпретируется как имеющее координаты в пространстве сцены.
См. также mapDirectionToNode, mapDirectionFromScene и mapDirectionToScene.
vector3d mapDirectionFromScene(vector3d sceneDirection)
Преобразует sceneDirection из пространства сцены в локальное пространство. Возвращаемое значение не зависит от масштаба или позиции узла (унаследованных).
Примечание: возвращаемое значение будет иметь ту же длину, что и sceneDirection (т.е. не нормировано).
См. также mapDirectionToScene, mapDirectionToNode и mapDirectionFromNode.
vector3d mapDirectionToNode(QtQuick3D::Node node, vector3d localDirection)
Преобразует localDirection из локального пространства этого узла в локальное пространство node. Возвращаемое значение не зависит от масштаба или позиции узла (унаследованных).
Примечание: возвращаемое значение будет иметь ту же длину, что и localDirection (т.е. не нормировано).
Примечание: если node равно null, то возвращаемое направление будет преобразовано в координаты пространства сцены.
См. также mapDirectionFromNode, mapDirectionFromScene и mapDirectionToScene.
vector3d mapDirectionToScene(vector3d localDirection)
Преобразует localDirection из локального пространства в пространство сцены. Возвращаемое значение не зависит от масштаба или позиции узла (унаследованных).
Примечание: возвращаемое значение будет иметь ту же длину, что и localDirection (т.е. не нормировано).
См. также mapDirectionFromScene, mapDirectionToNode и mapDirectionFromNode.
vector3d mapPositionFromNode(QtQuick3D::Node node, vector3d localPosition)
Преобразует localPosition из локального пространства node в локальное пространство этого узла.
Примечание: Если node равно null, то localPosition интерпретируется как имеющее координаты в пространстве сцены.
См. также mapPositionToScene, mapPositionFromScene и mapPositionToNode.
vector3d mapPositionFromScene(vector3d scenePosition)
Преобразует scenePosition из пространства сцены в локальное пространство.
См. также mapPositionToScene, mapPositionToNode и mapPositionFromNode.
vector3d mapPositionToNode(QtQuick3D::Node node, vector3d localPosition)
Преобразует localPosition из локального пространства этого узла в локальное пространство node.
Примечание: Если node равно null, то localPosition будет преобразовано в координаты пространства сцены.
См. также mapPositionToScene, mapPositionFromScene и mapPositionFromNode.
vector3d mapPositionToScene(vector3d localPosition)
Преобразует localPosition из локального пространства в пространство сцены.
Примечание: «Пространство сцены» иногда также называется «глобальным пространством». Но тогда в значении «глобальное в 3D-мире», а не «глобальное для экрана или рабочего стола» (что обычно является интерпретацией в других API Qt).
См. также mapPositionFromScene, mapPositionToNode и mapPositionFromNode.
rotate(real degrees, vector3d axis, enumeration space)
Поворачивает этот узел вокруг axis на заданные degrees. Указанный поворот будет добавлен к текущему повороту узла. Ось может быть указана относительно различных space.
| Постоянная | Описание |
|---|---|
Node.LocalSpace |
Ось относится к локальной ориентации этого узла. |
Node.ParentSpace |
Ось относится к локальной ориентации родительского узла. |
Node.SceneSpace |
Ось относится к сцене. |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick3d-node.html