场景图的结构元素,表示3D坐标空间中的位置和变换,您可以在其中附加几何图形,灯光,照相机或其他可显示内容。
var simdTransform: simd_float4x4 { get set }
转换是节点的simdRotation,simdPosition和simdScale属性的组合。 默认转换是单位矩阵。
设置此属性的值时,节点的simdRotation,simdOrientation,simdEulerAngles,simdPosition和simdScale属性会自动更改以匹配新的变换,反之亦然。 仅当您提供的转换是旋转,平移和缩放操作的组合时,SceneKit才能执行此转换。 如果将此属性的值设置为偏斜变换或非仿射变换,则这些属性的值将变为未定义。 为这些属性中的任何一个设置新值都会导致SceneKit计算新的变换,并丢弃原始变换中的任何偏斜或非仿射操作。
您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var simdPosition: simd_float3 { get set }
根据节点的simdPivot属性修改,该节点的位置位于其父级坐标系内。 默认位置是零向量,表示该节点位于父节点坐标系的原点。
您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var simdPivot: simd_float4x4 { get set }
节点位置,旋转和比例的中心点。 可动画的。
节点的支点是其坐标空间与其simdPosition,simdRotation和simdScale属性所使用的坐标空间之间的转换。默认的枢轴是单位矩阵,它指定节点的位置定位其坐标系的原点,其旋转围绕通过其中心的轴,并且其比例也相对于该中心点。
更改枢轴变换会以许多有用的方式更改这些行为。您可以:
相对于其位置偏移节点的内容。例如,通过将枢轴设置为平移变换,可以相对于球在地板上放置的位置而不是相对于其中心的位置,将包含球几何的节点定位。
移动节点的旋转轴。例如,使用平移变换可以使节点绕远点旋转,而不是绕其中心旋转;而使用旋转变换可以使旋转轴倾斜。
调整中心点和方向以缩放节点。例如,通过平移变换,可以使节点相对于角而不是相对于其中心增大或缩小。
您可以对此属性的值进行动画处理。请参见使SceneKit内容动画化。
var simdRotation: simd_float4 { get set }
节点的方向,表示为围绕轴的旋转角度。 可动画的。
四分量旋转矢量在前三个分量中指定旋转轴的方向,在第四分量中指定旋转角(以弧度为单位)。 默认旋转为零向量,不指定旋转。 旋转是相对于节点的simdPivot属性应用的。
simdRotation,simdEulerAngles和simdOrientation属性都会影响节点simdTransform属性的旋转角度。 这些属性之一的任何更改都会反映在其他属性中。
您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var simdEulerAngles: simd_float3 { get set }
节点的方向,以弧度表示的俯仰,偏航和侧倾角。 可动画的。
此向量中的分量顺序与旋转轴匹配:
间距(x分量)是围绕节点x轴的旋转。
偏航角(y分量)是围绕节点y轴的旋转。
滚动(z分量)是绕节点z轴的旋转。
SceneKit按照与组件相反的顺序将这些旋转相对于节点的simdPivot属性应用:首先滚动,然后偏航,然后俯仰。 simdRotation,simdEulerAngles和simdOrientation属性都会影响节点simdTransform属性的旋转角度。 这些属性之一的任何更改都会反映在其他属性中。
您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var simdOrientation: simd_quatf { get set }
方向向量,用四元数表示
simdRotation,simdEulerAngles和simdOrientation属性都会影响节点simdTransform属性的旋转角度。 这些属性之一的任何更改都会反映在其他属性中。
您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var simdScale: simd_float3 { get set }
应用到model的缩放因数
比例向量的每个分量都会乘以节点几何的相应尺寸。 这三个维度的默认比例均为1.0。 例如,将比例(2.0、0.5、2.0)应用于包含立方体几何的节点会减小其高度,并增加其宽度和深度。 缩放是相对于节点的simdPivot属性应用的。
您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var light: SCNLight? { get set }
附加到节点的灯光
var camera: SCNCamera? { get set }
附加到节点的相机
var geometry: SCNGeometry? { get set }
附加到节点的几何体
var morpher: SCNMorpher? { get set }
您可以使用变形器对象在多个几何之间进行插值。 有关详细信息,请参见SCNMorpher
var skinner: SCNSkinner? { get set }
一个对象,用于管理骨骼动画及其动画的节点和几何之间的关系。
var constraints: [SCNConstraint]? { get set }
约束对象数组。 在渲染之前,SceneKit会评估附加到节点层次结构的所有约束,并适当地调整节点转换。
使用SCNLookAtConstraint类可以使一个节点即使两个节点都移动时也始终指向另一个节点,或者使用SCNTransformConstraint类在约束评估时应用任意变换。
var presentation: SCNNode { get }
表示节点当前在屏幕上的状态的节点对象。
var isPaused: Bool { get set }
一个布尔值,该值确定是否运行附加到该节点及其子节点的动作和动画。
var isHidden: Bool { get set }
一个布尔值,用于确定节点内容的可见性。 可动画的。
var opacity: CGFloat { get set }
可能的值在0.0(完全透明)和1.0(完全不透明)之间。 默认值为1.0。
您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var parent: SCNNode? { get }
场景图层次结构中节点的父级。
var childNodes: [SCNNode] { get }
子节点数组
var physicsBody: SCNPhysicsBody? { get set }
默认值为nil,指定该节点完全不参与物理模拟。 如果您提供了一个物理物体,那么每次执行一个物理模拟步骤时,SceneKit都会更新节点的位置和方向。 有关SceneKit物理系统的更多信息,请参见SCNPhysicsWorld。
var physicsField: SCNPhysicsField? { get set }
物理场将力施加到节点周围指定区域中的其他物理体。 例如,SCNPhysicsDragField字段会减慢通过其区域的所有物理物体。 有关字段类型及其作用的完整列表,请参见SCNPhysicsField。
节点既可以包含定义碰撞行为的物理实体,也可以包含定义其区域中的力的物理场。 例如,包含物理物体和径向重力场的两个节点将相互吸引,但是当它们碰撞时会相互反弹。
var simdWorldRight: simd_float3 { get }
相对于节点的“右”(+ X)方向矢量,以世界空间表示。
读取此属性等效于读取simdLocalRight类属性,并使用simdConvertVector(_:to :)或simdConvertVector(_:from :)方法将该矢量从节点的局部坐标空间转换为场景的世界坐标空间。
局部坐标系(Local Coordinate),也就是坐标系以物体的中心为坐标原点,物体的旋转、平移等操作都是围绕局部坐标系进行的,这时,当物体模型进行旋转或平移等操作时,局部坐标系也执行相应的旋转或平移操作。
var simdWorldUp: simd_float3 { get }
相对于节点的“向上”(+ Y)方向矢量,以世界空间表示。
var simdWorldFront: simd_float3 { get }
相对于节点的“向上”(- Z)方向矢量,以世界空间表示。
var simdWorldTransform: simd_float4x4 { get set }
世界变换已应用于该节点。
世界变换是节点相对于场景坐标空间的坐标空间变换。 此转换是节点的simdTransform属性与其父节点,父节点的父节点的simdTransform属性的串联,依此类推,直到场景的rootNode对象。
var simdWorldOrientation: simd_quatf { get set }
节点相对于场景的世界坐标空间的方向。
该四元数隔离了节点的simdWorldTransform矩阵的旋转方面,这又是节点的simdTransform从局部空间到场景的世界坐标空间的转换。 也就是说,它表示节点与场景的根节点之间的旋转轴和旋转角度的差异。
var simdWorldPosition: simd_float3 { get set }
节点相对于场景的世界坐标空间的位置。
此向量隔离了节点的simdWorldTransform矩阵的转换方面,这又是节点的simdTransform从局部空间到场景的世界坐标空间的转换。 也就是说,它表示节点位置相对于场景根节点的x,y和z偏移量,等效于读取节点的simdPosition向量,并使用simdConvertPosition(_:from :)或simdConvertPosition将其转换为世界空间 (_:to :)方法。
var worldTransform: SCNMatrix4 { get }
世界变换已应用于该节点。
世界变换是节点相对于场景坐标空间的坐标空间变换。 此转换是节点的transform属性与其父节点,父节点的父节点的transform属性的串联,依此类推,直到场景的rootNode对象。
var worldOrientation: SCNQuaternion { get set }