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