Skip to content
导览

虚拟节点 VTreeManagement

虚拟节点管理器是对虚拟节点控制的工具,通过获取该管理器,用户可以方便地进行对虚拟节点控制管理。 该工具的主要功能包括:

  1. 创建虚拟节点
  2. 删除虚拟节点
  3. 获取节点被引用的次数
  4. 根据guid获取虚拟节点等

我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。

VTreeManagement

用户可以调用云渲染实例 cloud 上的 getSceneManager() 方法来获取 sceManager 场景管理器,然后调用sceManager上的getVTreeManagement() 方法来获取vtManager虚拟节点管理器。

ts
const sceManager = await cloud.getSceneManager()
const vtManager = await sceManager.getVTreeManagement()
const sceManager = await cloud.getSceneManager()
const vtManager = await sceManager.getVTreeManagement()

获取虚拟根节点 | getVirtualRoot

  • 说明:获取虚拟根节点

    我们可以调用 vtManager 上面的 getVirtualRoot 方法来获取虚拟根节点。

    虚拟根节点

    在三维引擎中,虚拟根节点(Virtual Root Node)是一个特殊的节点,它是3D场景中所有节点的父节点。虚拟根节点通常不会被直接渲染到场景中,而是作为一个容器,包含了场景中所有其他实际的节点。

    调用示例:

    ts
    const sceManager = await cloud.getSceneManager()
    const vtManager = await sceManager.getVTreeManagement()
    const node = await vtManager.getVirtualRoot()
    const sceManager = await cloud.getSceneManager()
    const vtManager = await sceManager.getVTreeManagement()
    const node = await vtManager.getVirtualRoot()

创建虚拟节点 | createVirtualNode

  • 说明:创建虚拟节点

    我们可以调用 vtManager 上面的 createVirtualNode 方法来创建虚拟节点。

    创建虚拟节点的意义

    在三维引擎中,创建虚拟节点(Create Virtual Node)指的是通过编程的方式在3D场景中创建一个没有实际渲染效果的节点对象,用于管理、控制其他节点。这个虚拟节点不会被直接渲染到场景中,而是作为一个容器,封装了场景中的其他实际的节点。

  • 传参说明

NameTypeDescription
nodeNamestring-
virtualNodeTypeemVirtualNodeType虚拟节点类型
pParentVirtualNode父节点
nodesnull | Node[]引用节点

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const vtManager = await sceManager.getVTreeManagement()
const a = await vtManager.getVirtualRoot()
const ope = await vtManager.createVirtualNode('v1', emVirtualNodeType.Node_SelectionSet, a!, [])
const sceManager = await cloud.getSceneManager()
const vtManager = await sceManager.getVTreeManagement()
const a = await vtManager.getVirtualRoot()
const ope = await vtManager.createVirtualNode('v1', emVirtualNodeType.Node_SelectionSet, a!, [])

删除虚拟节点 | deleteVirtualNode

NameTypeDescription
virtualNodeVirtualNode虚拟节点

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const vtManager = await sceManager.getVTreeManagement()
const a = await vtManager.getVirtualRoot()
const ope = await vtManager.deleteVirtualNode(a!)
const sceManager = await cloud.getSceneManager()
const vtManager = await sceManager.getVTreeManagement()
const a = await vtManager.getVirtualRoot()
const ope = await vtManager.deleteVirtualNode(a!)

获取节点被引用的次数 | getNodeRefCount

  • 说明:获取节点被引用的次数

    我们可以调用 vtManager 上面的 getNodeRefCount 方法来获取节点被引用的次数。

  • 传参说明

NameTypeDescription
nodeNode节点

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const nodeRoot = await sceManager.getRootNode3D()
const a = await pVt.getVirtualRoot()
const node11 = await pVt.createVirtualNode('v1', emVirtualNodeType.Node_SelectionSet, a!, [nodeRoot!])
const opeRefCount = await pVt.getNodeRefCount(nodeRoot!)
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const nodeRoot = await sceManager.getRootNode3D()
const a = await pVt.getVirtualRoot()
const node11 = await pVt.createVirtualNode('v1', emVirtualNodeType.Node_SelectionSet, a!, [nodeRoot!])
const opeRefCount = await pVt.getNodeRefCount(nodeRoot!)

根据guid获取虚拟节点 | getVirtualNodeByGuid

  • 说明:根据guid获取虚拟节点

    我们可以调用 vtManager 上面的 getVirtualNodeByGuid 方法来根据guid获取虚拟节点。

  • 传参说明

NameTypeDescription
nodeGuidstring节点guid

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const a = await pVt.getVirtualRoot()
const node11 = await pVt.createVirtualNode('v1', emVirtualNodeType.Node_SelectionSet, a!, [])
const node11122 = await pVt.getVirtualNodeByGuid(node11!.guid)
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const a = await pVt.getVirtualRoot()
const node11 = await pVt.createVirtualNode('v1', emVirtualNodeType.Node_SelectionSet, a!, [])
const node11122 = await pVt.getVirtualNodeByGuid(node11!.guid)

获取虚拟节点下所有实体节点 | getAllEntityNodes

  • 说明:获取虚拟节点下所有实体节点

    我们可以调用 vtManager 上面的 getAllEntityNodes 方法来获取虚拟节点下所有实体节点。

    获取虚拟节点下所有实体节点

    在三维引擎中,获取虚拟节点下所有实体节点(Get All Entity Nodes Under Virtual Node)指的是查询一个虚拟节点中包含的所有实际渲染节点。这个操作可以让我们快速地获取虚拟节点中所有相关的节点信息,便于进行场景的更新、操作和控制等。

  • 传参说明

NameTypeDescription
nodeVirtualNode虚拟节点

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const node = await pVt.getVirtualRoot()
const aRoot = await sceManager.getRootNode3D()
const pNode1 = await pVt.createVirtualNode('111', emVirtualNodeType.Node_SelectionSet, node!, [aRoot!])
const ope = await pVt.getAllEntityNodes(pNode1!)
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const node = await pVt.getVirtualRoot()
const aRoot = await sceManager.getRootNode3D()
const pNode1 = await pVt.createVirtualNode('111', emVirtualNodeType.Node_SelectionSet, node!, [aRoot!])
const ope = await pVt.getAllEntityNodes(pNode1!)

克隆虚拟节点 | clone

  • 说明:克隆虚拟节点

    我们可以调用 vtManager 上面的 clone 方法来克隆虚拟节点 。

    克隆虚拟节点

    在三维引擎中,克隆虚拟节点(Clone Virtual Node)指的是创建一个与原始虚拟节点完全相同的新虚拟节点。这个新虚拟节点将包含与原始节点相同的所有实体节点、材质、纹理、光照等等信息,同时与原始节点完全独立,之后对新节点的修改不会影响原始节点。

  • 传参说明

NameTypeDescription
nodeVirtualNode被克隆的节点

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const node = await pVt.getVirtualRoot()
const ope = await pVt.clone(node!)
const sceManager = await cloud.getSceneManager()
const pVt = await sceManager.getVTreeManagement()
const node = await pVt.getVirtualRoot()
const ope = await pVt.clone(node!)