Node类是在View3D 中的对象基础组件,用于表示3D空间中的对象,类似于Qt Quick 2D场景中的Item,介绍如下所示:
如上图可以看到,Node类的子类非常多,比如Model类(显示3D模型)、ParticleSystem3D粒子系统类、Light光照类等等。
所以Node类非常重要,本章我们便来来学习Node类,再来学习其它类就会非常的方便快捷。
Node类是一个节点类,Node 类具有用于确定其在3D空间中位置和变换的属性,如 position、rotation、scale 等。这些属性使得你可以在场景中移动、旋转和缩放3D元素。
Node类支持如下所示:
Node常用属性如下所示:
提供的方法如下所示:
vector3d mapDirectionFromNode(QtQuick3D::Node node, vector3d localDirection)
将localDirection从节点的局部空间变换到该节点的局部空间。返回值不受节点(继承的)比例或位置的影响。
注意:返回值将具有与localDirection相同的长度(即未标准化)
vector3d mapDirectionFromScene(vector3d sceneDirection)
将sceneDirection从场景3D空间转换为局部空间。返回值不受节点(继承的)比例或位置的影响。
注意:返回值将具有与sceneDirection相同的长度(即未标准化)。
vector3d mapDirectionToNode(QtQuick3D::Node node, vector3d localDirection)
将localDirection从此节点本地空间转换为节点的本地空间。返回值不受节点(继承的)比例或位置的影响。
注意:返回值将具有与localDirection相同的长度(即未标准化)。
vector3d mapDirectionToScene(vector3d localDirection)
将localDirection从本地空间变换到场景3D空间。返回值不受节点(继承的)比例或位置的影响。
注意:返回值将具有与localDirection相同的长度(即未标准化)。
vector3d mapPositionFromNode(QtQuick3D::Node node, vector3d localPosition)
将localPosition从节点的局部空间变换到该节点的局部空间。
vector3d mapPositionFromScene(vector3d scenePosition)
将scenePosition从场景3D空间变换到局部空间。
vector3d mapPositionToNode(QtQuick3D::Node node, vector3d localPosition)
将localPosition从此节点的本地空间转换为节点的本地空间。
vector3d mapPositionToScene(vector3d localPosition)
将localPosition从本地空间变换到场景3D空间。
注意: 场景3D空间含义是“3D 世界中的全局”,而不是“屏幕或桌面的全局”
rotate(real degrees, vector3d axis, enumeration space)
围绕axis轴旋转该节点给定的degrees度数。可以设置轴的空间类型,取值如下所示:
未完待续,后面学习该Node各个子类、在demo中实现这些方法调用实例