Bitbybit Docs
    Preparing search index...

    Class BabylonNode

    变换节点:带有位置和朝向的不可见点,网格和其他节点可以以它为父节点,从而使整组作为一个整体移动。构建节点层级是放置复杂排布的方式:转动父节点,每个子节点都随之转动。这里的方法创建节点,读取它们在世界或局部空间中的轴和位置,并移动、旋转和重新设置父节点;角度以度为单位。

    Index

    Constructors

    Methods

    • 将节点的三条坐标轴绘制为给定长度的彩色线条,并挂载到该节点上,以便看到它的位置和朝向;默认颜色为 X 红、Y 绿、Z 蓝。

      Parameters

      • inputs: DrawNodeDto

        节点、坐标轴颜色和坐标轴长度

      Returns void

      bitbybit.babylon.node.drawNode({ node, colorX: "#ff0000", colorY: "#00ff00", colorZ: "#0000ff", size: 2 });
      
    • 将多个节点的三条坐标轴绘制为给定长度的彩色线条,每组挂载到其节点上,与 drawNode 对一个节点所做的相同。

      Parameters

      • inputs: DrawNodesDto

        节点、坐标轴颜色和坐标轴长度

      Returns void

      bitbybit.babylon.node.drawNodes({ nodes: [nodeA, nodeB], colorX: "#ff0000", colorY: "#00ff00", colorZ: "#0000ff", size: 2 });
      
    • origin 处创建一个节点,按 rotation 的三个角度(以度为单位)绕 X、Y 和 Z 转动,给出 parent 时位于其坐标系内。

      Parameters

      Returns TransformNode

      新节点

      const node = bitbybit.babylon.node.createNodeFromRotation({ parent: null, origin: [0, 5, 0], rotation: [0, 45, 0] });
      
    • 创建一个挂载到场景根节点的节点,作为在世界原点构建层级结构的新起点。

      Returns TransformNode

      新节点,其父节点为场景的根节点

      const world = bitbybit.babylon.node.createWorldNode();
      const arm = bitbybit.babylon.node.createNodeFromRotation({ parent: world, origin: [0, 5, 0], rotation: [0, 0, 30] });
    • 读取节点的局部 Z 轴在世界空间中指向的方向,已应用每个父节点的旋转。

      Parameters

      Returns number[]

      以向量表示的前方向

    • 读取节点的局部 X 轴在世界空间中指向的方向,已应用每个父节点的旋转。

      Parameters

      Returns number[]

      以向量表示的右方向

    • 读取节点的局部 Y 轴在世界空间中指向的方向,已应用每个父节点的旋转。

      Parameters

      Returns number[]

      以向量表示的上方向

    • 读取节点原点在世界空间中的位置,已应用每个父节点的变换。

      Parameters

      Returns number[]

      以点表示的世界位置

    • 读取节点在世界空间中的旋转,已应用每个父节点的旋转,以 16 个数值的 4x4 矩阵表示。

      Parameters

      Returns number[]

      以 16 个数值的矩阵表示的旋转

    • 以 16 个数值的 4x4 矩阵读取节点相对于其父节点的旋转;节点必须携带旋转四元数,rotatesetDirection 会为其赋予。

      Parameters

      Returns number[]

      以 16 个数值的矩阵表示的旋转

    • 列出直接挂载在某个节点之下的节点和网格,即随它移动的那些。

      Parameters

      Returns Node[]

      直接子节点

    • 读取节点所挂载的父节点,即它随之移动的节点;顶层节点没有父节点。

      Parameters

      Returns Node

      父节点

    • 读取以节点自身局部坐标轴而不是其父节点坐标轴度量的位置,节点旋转后两者会不同。

      Parameters

      Returns number[]

      以节点局部空间中的点表示的位置

    • 给出场景的根节点,即 createWorldNode 所挂载到的层级结构顶端。

      Returns TransformNode

      根节点

    • 以绕 X、Y 和 Z 的三个角度(以度为单位)读取节点相对于其父节点的旋转。

      Parameters

      Returns number[]

      以度表示的旋转角度

    • 使节点绕经过 position 的轴转动 angle 度,因此节点围绕该点公转而不是原地自转;其子节点跟随。

      Parameters

      Returns void

      bitbybit.babylon.node.rotateAroundAxisWithPosition({ node, position: [0, 0, 0], axis: [0, 1, 0], angle: 90 });
      
    • 在当前旋转的基础上使节点绕经过其自身原点的轴转动 angle 度;其子节点跟随。

      Parameters

      • inputs: RotateNodeDto

        节点、轴方向以及以度为单位的角度

      Returns void

      bitbybit.babylon.node.rotate({ node, axis: [0, 1, 0], angle: 45 });
      
    • 将节点移动到世界空间中的某个点,不论其父节点如何;其子节点跟随。

      Parameters

      Returns void

      bitbybit.babylon.node.setAbsolutePosition({ node, position: [10, 0, 0] });
      
    • 转动节点使其局部 Z 轴沿 direction 指向;其子节点跟随。

      Parameters

      Returns void

      bitbybit.babylon.node.setDirection({ node, direction: [1, 0, 0] });
      
    • 将节点挂载到另一个节点,使其此后随之移动,并保持其当前在世界中的位置;父节点为 null 则将其分离。

      Parameters

      Returns void

      bitbybit.babylon.node.setParent({ node: wheel, parentNode: car });
      
    • 使节点沿 direction(以节点自身局部坐标轴给出)移动 distance 个场景单位;其子节点跟随。

      Parameters

      Returns void

      bitbybit.babylon.node.translate({ node, direction: [0, 1, 0], distance: 5 });