节点

public class Node
已知的直接子类
已知的间接子类

节点表示场景图的层次结构中的转换。它可以包含可供渲染引擎渲染的可渲染对象。

每个节点可以拥有任意数量的子节点和一个父节点。父节点可能是其他节点,也可能是场景。

嵌套类

接口 Node.LifecycleListener 发生节点生命周期事件时调用的回调的接口定义。
接口 Node.OnTapListener 在用户点按节点时调用的接口的定义。
接口 Node.OnTouchListener 在将触摸事件分派给此节点时要调用的回调的接口定义。
接口 Node.TransformChangedListener 节点转换发生更改时要调用的回调的定义。

公共构造函数

节点
创建没有父级的节点。

公共方法

无效
addLifecycleListener(Node.LifecycleListener lifecycleListener)
添加将在节点生命周期事件发生时调用的监听器。
无效
addTransformChangedListener(Node.TransformChangedListener TransformChangedListener)
添加将在节点的转换发生变化时调用的监听器。
无效
callOnHierarchy(消费者节点>消费者)
遍历层次结构并在每个节点(包括该节点)上调用方法。
节点
findInHierarchy(Predicate<Node>condition)
遍历层次结构以查找第一个满足条件的节点(包括该节点)。
final Vector3
getBack()
获取此节点的世界空间返回矢量 (+z)。
CollisionShape
getCollisionShape()
获取用于与此节点冲突的形状。
final Vector3
getDown()
获取此节点的世界空间向下矢量 (-y)。
final Vector3
getForward()
获取此节点的世界空间正向量 (-z)。
final Vector3
getLeft()
获取此节点的世界空间左矢量 (-x)。
浅色
getLight()
获取可变的当前光照。
final Vector3
getLocalPosition()
获取节点相对于其父级(本地空间)位置的副本。
最终 四元数
getLocalRotation()
获取节点相对于其父级(本地空间)旋转的副本。
final Vector3
getLocalScale()
获取节点相对于其父项(本地空间)的比例的副本。
final String
getName()
返回节点的名称。
final Node
getParent()
返回此节点的父级。
可渲染对象
getRenderable()
获取为此节点显示的可渲染对象。
final Vector3
getRight()
获取此节点的世界空间右向量 (+x)。
最终 场景
getScene()
返回此节点所属的场景;如果此节点不是任何场景的一部分,则返回 null。
final Vector3
getUp()
获取此节点的世界空间向上矢量 (+y)。
final Vector3
getWorldPosition()
获取节点世界空间位置的副本。
最终 四元数
getWorldRotation()
获取节点世界空间旋转的副本。
final Vector3
getWorldScale()
获取节点世界空间比例的副本。
final 布尔值
isActive()
如果节点处于活动状态,则返回 true。
final 布尔值
isDescendantOfNodeParent 祖先实体)
检查给定节点父项是否为递归的此节点的祖先实体。
final 布尔值
isEnabled()
获取此节点的启用状态。
布尔值
isTopLevel()
如果该节点是顶级,则返回 true。
final Vector3
localToWorldDirection(Vector3 方向)
将方向从此节点的本地空间转换为真实世界空间。
final Vector3
localToWorldPointVector3 点)
将此节点的本地空间中的点转换为世界空间。
无效
onActivate()
处理此节点何时变为活动状态。
无效
onDisable()
处理此节点何时变为非活跃状态。
布尔值
onTouchEventHitTestResulthitTestResult、MotionEvent motionEvent)
处理轻触此节点时的操作。
无效
onTransformChange(Node源节点)
处理此节点的转换发生更改时。
无效
onUpdate(FrameTime frameTime)
此节点更新时处理。
无效
removeLifecycleListener(Node.LifecycleListener lifecycleListener)
移除在节点生命周期事件发生时调用的监听器。
无效
removeTransformChangedListener(Node.TransformChangedListener TransformChangedListener)
移除节点转换更改时调用的监听器。
无效
setCollisionShape(CollisionShape collisionShape)
将形状设置为用于检测此 Node 的冲突。
final void
setEnabled(布尔值已启用)
设置此节点的启用状态。
无效
setLight浅色
设置要显示的 Light
无效
setLocalPosition(Vector3 位置)
设置此节点相对于其父级(本地空间)的位置。
无效
setLocalRotation四元数旋转)
设置此节点相对于其父项(本地空间)的旋转角度。
无效
setLocalScaleVector3 缩放)
设置此节点相对于其父项(本地空间)的缩放比例。
final void
setLookDirection(Vector3 LookDirection)
设置节点在真实世界空间中的方向。
final void
setLookDirectionVector3 LookDirection、Vector3 upDirection)
设置节点在真实世界空间中的方向。
final void
setName(String name)
设置此节点的名称。
无效
setOnTapListener(Node.OnTapListener onTapListener)
注册点按此节点时要调用的回调。
无效
setOnTouchListener(Node.OnTouchListener onTouchListener)
注册在将触摸事件分派给此节点时要调用的回调。
无效
setParent(NodeParent)
更改此节点的父节点。
无效
setRenderable可渲染对象
设置要为此节点显示的 Renderable
无效
setWorldPosition(Vector3 位置)
设置此节点的世界空间位置。
无效
setWorldRotation四元数旋转)
设置此节点的世界空间旋转角度。
无效
setWorldScaleVector3 缩放)
设置此节点的世界空间比例。
字符串
toString
final Vector3
worldToLocalDirectionVector3 方向)
将方向从真实世界转换为此节点的本地空间。
final Vector3
worldToLocalPointVector3 点)
将真实世界空间中的点转换为此节点的本地空间。

受保护的方法

final 布尔值
canAddChildNode 子节点、StringBuilder失败原因)
final void
final void
onRemoveChildNode 子项)

继承的方法

公共构造函数

public 节点 ()

创建没有父级的节点。

公共方法

public void addLifecycleListener (Node.LifecycleListenerlifecycleListener)

添加将在节点生命周期事件发生时调用的监听器。系统将按照添加顺序调用监听器。

参数
lifecycleListener

public void addTransformChangedListener (Node.TransformChangedListenertransformChangedListener)

添加将在节点的转换发生变化时调用的监听器。

参数
TransformChangedListener

public void callOnHierarchy (Consumer<Node> consumer)

遍历层次结构并在每个节点(包括该节点)上调用方法。遍历首先是深入探索。

参数
使用方 在每个节点上调用的方法

public Node findInHierarchy (Predicate<Node>condition)

遍历层次结构以查找第一个满足条件的节点(包括该节点)。 一旦满足该谓词,遍历就会停止。遍历首先是深入的。

参数
condition 谓词定义要搜索的节点的条件。
返回
  • 第一个与谓词条件匹配的节点,否则返回 null

public final Vector3 getBack ()

获取此节点的世界空间返回矢量 (+z)。

返回
  • 表示节点在现实世界空间中的返回方向的新矢量

public CollisionShape getCollisionShape ()

获取用于与此节点冲突的形状。如果形状为 null 且设置了 setRenderable(Renderable),则使用 getCollisionShape() 检测此 Node 的冲突。

返回
  • 表示几何形状,即球体、盒子、凸形外壳。

public final Vector3 getDown ()

获取此节点的世界空间向下矢量 (-y)。

返回
  • 表示节点在现实世界空间中的下移方向的新矢量

public final Vector3 getForward ()

获取此节点的世界空间正向量 (-z)。

返回
  • 表示节点在世界空间中的向前方向的新矢量

public final Vector3 getLeft ()

获取此节点的世界空间左矢量 (-x)。

返回
  • 表示节点在世界空间中的左侧方向的新矢量

public Light getLight ()

获取可变的当前光照。

public final Vector3 getLocalPosition ()

获取节点相对于其父级(本地空间)位置的副本。如果 isTopLevel() 为 true,则等同于 getWorldPosition()

返回
  • 表示节点的本地空间位置的新矢量

public final Quaternion getLocalRotation ()

获取节点相对于其父级(本地空间)旋转的副本。如果 isTopLevel() 为 true,则等同于 getWorldRotation()

返回
  • 表示节点的本地空间旋转的新四元数

public final Vector3 getLocalScale ()

获取节点相对于其父项(本地空间)的比例的副本。如果 isTopLevel() 为 true,则等同于 getWorldScale()

返回
  • 表示节点的本地空间比例的新矢量
另请参阅

public final String getName ()

返回节点的名称。默认值为“节点”。

public final Node getParent ()

返回此节点的父级。如果此 Node 具有父项,且该父项是 NodeNode 子类,则此函数以 Node 形式返回父项。如果父级是 Scene,则返回 null,请改用 getScene() 检索父级。

返回
  • 将父级作为 Node(如果父级是 Node)。

public Renderable getRenderable ()

获取为此节点显示的可渲染对象。

返回
  • 可呈现的节点数量

public final Vector3 getRight ()

获取此节点的世界空间右向量 (+x)。

返回
  • 表示节点在世界空间中的正确方向的新矢量

public final Scene getScene ()

返回此节点所属的场景;如果此节点不是任何场景的一部分,则返回 null。如果某个节点的最高级别是 Scene,则该节点是场景的一部分

public final Vector3 getUp ()

获取此节点的世界空间向上矢量 (+y)。

返回
  • 表示节点在世界空间中的向上方向的新矢量

public final Vector3 getWorldPosition ()

获取节点世界空间位置的副本。

返回
  • 表示节点世界空间位置的新矢量

public final Quaternion getWorldRotation ()

获取节点世界空间旋转的副本。

返回
  • 表示节点世界空间旋转的新四元数

public final Vector3 getWorldScale ()

获取节点世界空间比例的副本。如果节点出现偏差,将会损失一定的精度。

返回
  • 表示节点的世界空间比例的新矢量
另请参阅

public final boolean isActive ()

如果节点处于活动状态,则返回 true。如果某个节点满足以下所有条件,则被视为活跃:

  • 节点是场景的一部分。
  • 节点的父级处于活动状态。
  • 节点已启用。
活跃节点具有以下行为:

返回
  • 节点的活跃状态

public final boolean isDescendantOf (NodeParent 祖先实体)

检查给定节点父项是否为递归的此节点的祖先实体。

参数
ancestor 要检查的节点父节点
返回
  • 如果节点是此节点的祖先实体,则返回 true

public final boolean isEnabled ()

获取此节点的启用状态。请注意,如果某个节点不属于场景或其父级处于非活跃状态,则该节点可能已启用但仍处于非活跃状态。

返回
  • 节点的启用状态。
另请参阅

public boolean isTopLevel ()

如果该节点是顶级,则返回 true。如果某个节点没有父节点或父节点是场景,则会被视为顶级节点。

返回
  • 如果节点是顶级节点,则为 true

public final Vector3 localToWorldDirection (Vector3 方向)

将方向从此节点的本地空间转换为真实世界空间。不受节点位置或规模的影响。

参数
方向 本地空间中的转换方向
返回
  • 表示现实世界空间方向的新矢量

public final Vector3 localToWorldPoint (Vector3 point)

将此节点的本地空间中的点转换为世界空间。

参数
point 要转换的本地空间中的点
返回
  • 表示现实世界空间中的点的新矢量

public void onActivate ()

处理此节点何时变为活动状态。如果某节点已启用,但属于场景的一部分且其父节点也处于活动状态,则该节点处于活动状态。

覆盖在节点激活时需要进行的任何设置。

另请参阅

public void onDisable ()

处理此节点何时变为非活跃状态。如果某个节点已停用、不属于某个场景或其父级不活跃,则会处于不活跃状态。

覆盖:用于执行停用节点时需要完成的任何设置。

另请参阅

public boolean onTouchEvent (HitTestResulthitTestResult, MotionEvent motionEvent)

处理轻触此节点时的操作。

替换,以执行触摸此节点时应出现的任何逻辑。触摸事件的传播方式与触摸传播的方式对应于 Android 视图。仅在节点处于活动状态时调用。

发生 ACTION_DOWN 事件时,表示手势开始。ACTION_UP 或 ACTION_CANCEL 表示手势何时结束。手势启动时,系统会执行以下操作:

  • 将触摸事件分派给被 hitTest(MotionEvent) 检测到的触摸节点。
  • 如果节点未消费事件,请通过该节点的父级向上递归并分派触摸事件,直到其中一个节点消耗事件。
  • 如果没有节点使用该事件,则系统将忽略该手势,并且手势中后续事件将不会传递到任何节点。
  • 如果其中一个节点使用了该事件,则该节点将消耗该手势的所有后续触摸事件。
当将触摸事件分派给某个节点时,该事件会先被传递到该节点的 Node.OnTouchListener。如果 Node.OnTouchListener 不处理事件,则会将其传递给 onTouchEvent(HitTestResult, MotionEvent)

参数
命中结果 表示触摸的节点,以及有关触摸位置的信息。在 ACTION_DOWN 事件中,getNode() 将始终是此节点或它的某个子节点。在其他事件中,触摸可能已移动,从而导致 getNode() 发生变化(也可能是 null)。
motionEvent [动作事件] 动作事件。
返回
  • 如果事件已处理,则返回 true,否则返回 false。

public void onTransformChange (Node originNode)

处理此节点的转换发生更改时的情况。

源节点是层次结构中触发此节点变化的最顶层节点。它将始终是同一节点或其某个父级节点(即,如果节点 A 的位置发生变化),则会触发为其所有子级节点(源节点为节点 A)调用 onTransformChange(Node)

参数
源节点 触发了此节点转换以发生更改的节点

public void onUpdate (FrameTime frameTime)

此节点更新时处理。节点会在呈现每一帧之前更新。仅当节点处于活动状态时才调用此方法。

执行替换,以执行每帧需要发生的任何更新。

参数
帧时间 提供当前帧的时间信息

public void removeLifecycleListener (Node.LifecycleListenerlifecycleListener)

移除在节点生命周期事件发生时调用的监听器。

参数
lifecycleListener

public void removeTransformChangedListener (Node.TransformChangedListenertransformChangedListener)

移除节点转换更改时调用的监听器。

参数
TransformChangedListener

public void setCollisionShape (CollisionShape collisionShape)

将形状设置为用于检测此 Node 的冲突。如果未设置形状且设置了 setRenderable(Renderable),则使用 getCollisionShape() 检测此 Node 的冲突。

参数
碰撞形状 表示几何形状,即球体、盒子、凸套。如果为 null,则此节点的当前冲突形状将被移除。

public final void setEnabled (boolean enabled)

设置此节点的启用状态。请注意,如果某个节点不属于场景或其父级处于非活跃状态,则该节点可能已启用但仍处于非活跃状态。

参数
已启用 节点的新启用状态
另请参阅

public void setLight (Light Light)

设置要显示的 Light。如需使用,请先使用 Light.Builder 创建 Light。设置您关注的参数,然后使用此函数将其附加到节点。节点可以具有可渲染对象和灯,也可以仅充当 Light

参数
灯具 要渲染的 Light 的属性,传递 null 以移除光线。

public void setLocalPosition (Vector3 position)

设置此节点相对于其父级(本地空间)的位置。如果 isTopLevel() 为 true,则等同于 setWorldPosition(Vector3)

参数
position 要应用的职位。
另请参阅

public void setLocalRotation (Quaternionrot)

设置此节点相对于其父项(本地空间)的旋转角度。如果 isTopLevel() 为 true,则等同于 setWorldRotation(Quaternion)

参数
旋转 要应用的旋转角度。
另请参阅

public void setLocalScale (Vector3scale)

设置此节点相对于其父项(本地空间)的缩放比例。如果 isTopLevel() 为 true,则等同于 setWorldScale(Vector3)

参数
和 WAF 要应用的缩放比例。
另请参阅

public final void setLookDirection (Vector3 LookDirection)

设置节点在真实世界空间中的方向。调用此方法后,getForward() 将与传入的方向匹配。世界空间向上(0、1、0)将用于确定节点围绕方向的方向。

参数
LookDirection 表示现实世界空间中所需方向的矢量

public final void setLookDirection (Vector3 LookDirection, Vector3 upDirection)

设置节点在真实世界空间中的方向。调用此方法后,getForward() 将与传入的方向匹配。向上方向将决定节点的方向方向。样式方向和向上方向不能一致(平行),否则方向无效。

参数
LookDirection 表示现实世界空间中所需方向的矢量
向上方向 表示要使用的有效向上矢量的矢量,例如 Vector3.up()

public final void setName (String name)

设置此节点的名称。您可以使用节点名称找到节点。多个节点可以具有相同的名称,在这种情况下,调用 findByName(String) 将返回具有给定名称的第一个节点。

参数
name 节点的名称。

public void setOnTapListener (Node.OnTapListener onTapListener)

注册点按此节点时要调用的回调。如果有注册的回调,触摸事件将不会以气泡形式显示到此节点的父级。如果覆盖了 Node.onTouchEvent 且未调用 super.onTouchEvent,则不会发生点按操作。

参数
onTapListener
另请参阅

public void setOnTouchListener (Node.OnTouchListener onTouchListener)

注册在将触摸事件分派给此节点时要调用的回调。触摸事件的传播方式与触摸传播的方式对应于 Android 视图。仅在节点处于活动状态时调用。

发生 ACTION_DOWN 事件时,表示手势开始。ACTION_UP 或 ACTION_CANCEL 表示手势何时结束。手势启动时,系统会执行以下操作:

  • 将触摸事件分派给被 hitTest(MotionEvent) 检测到的触摸节点。
  • 如果节点未消费事件,请通过该节点的父级向上递归并分派触摸事件,直到其中一个节点消耗事件。
  • 如果没有节点使用该事件,则系统将忽略该手势,并且手势中后续事件将不会传递到任何节点。
  • 如果其中一个节点使用了该事件,则该节点将消耗该手势的所有后续触摸事件。
当将触摸事件分派给某个节点时,该事件会先被传递到该节点的 Node.OnTouchListener。如果 Node.OnTouchListener 不处理事件,则会将其传递给 onTouchEvent(HitTestResult, MotionEvent)

参数
onTouchListener
另请参阅

public void setParent (NodeParent parent)

更改此节点的父节点。如果设置为 null,此节点将与其父项分离。此节点的本地位置、旋转和缩放将保持不变。因此,在节点发生变化后,此节点的世界位置、旋转和缩放比例可能会发生变化。

父级可以是另一个 NodeScene。如果是场景,那么此 Node 会被视为顶级元素。getParent() 将返回 null,而 getScene() 将返回场景。

参数
父级 此节点将作为其子节点的新父节点。如果为 null,此节点将与父节点分离。
另请参阅

public void setRenderable (Renderable renderable)

设置要为此节点显示的 Renderable。如果未设置 setCollisionShape(CollisionShape),则使用 getCollisionShape() 检测此 Node 的冲突。

参数
可渲染 通常为 3D 模型。如果为 null,系统将移除此节点的当前可渲染对象。

public void setWorldPosition (Vector3 position)

设置此节点的世界空间位置。

参数
position 要应用的职位。
另请参阅

public void setWorldRotation (Quaternion 旋转)

设置此节点的世界空间旋转角度。

参数
旋转 要应用的旋转角度。
另请参阅

public void setWorldScale (Vector3scale)

设置此节点的世界空间比例。

参数
和 WAF 要应用的缩放比例。
另请参阅

public String toString ()

public final Vector3 worldToLocalDirection (Vector3 方向)

将方向从真实世界转换为此节点的本地空间。不受节点位置或规模的影响。

参数
方向 在现实世界中的方向
返回
  • 表示本地空间方向的新矢量

public final Vector3 worldToLocalPoint (Vector3 point)

将真实世界空间中的点转换为此节点的本地空间。

参数
point 要转换的世界空间中的点
返回
  • 表示空间中的点的新矢量

受保护的方法

受保护的最终布尔值 canAddChild Node 子节点、StringBuilder失败原因)

参数
儿童
failureReason

final final void onAddChild (Node 子级)

参数
儿童

受保护的 final void onRemoveChild (Nodechild)

参数
儿童