Skip to content
导览

模型打散操作 Packer

模型打散操作是对模型打散操作控制的管理器,用户可以获取此管理器来进行对模型打散操作控制管理。

主要有全部加载,区域加载,树分支加载,逻辑树加载等。 模型打散操作管理器对模型打散操作控制的工具,通过获取该管理器,用户可以方便地进行模型打散操作控制管理。 该工具的主要功能包括:

  1. 全部加载(异步)
  2. 区域加载
  3. 树分支加载(异步加载)
  4. 逻辑树加载同步
  5. 逻辑树加载异步
  6. 根据节点guid卸载模型
  7. 根据节点的雪花id卸载模型
  8. 卸载当前加载的所有节点

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

全部加载(异步) | fullLoadAsync

  • 说明:全部加载模型,以异步方式

    我们可以调用 Packer 上面的 fullLoadAsync 方法来进行全部加载(异步)。

    调用示例:

    ts
    const destructure = await cloud.getDestructureLoadManagement()
    const packer = await destructure.openR3D(url)
    packer.fullLoadAsync()
    const destructure = await cloud.getDestructureLoadManagement()
    const packer = await destructure.openR3D(url)
    packer.fullLoadAsync()

区域加载 | areaLoad

  • 说明:区域加载

    我们可以调用 Packer 上面的 areaLoad 方法来进行区域加载。

    区域加载

    在三维引擎中,picker(选择器)的区域加载(region loading)指的是根据用户的输入或场景需求,动态加载3D场景中的物体或区域,以提高场景的渲染效率和性能。

  • 传参说明

NameTypeDescription
boxBox3Box3数据类型,此参数为加载区域

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const box = {
  min: { x: 0, y: 0, z: 0 },
  max: { x: 100, y: 100, z: 100 }
}
packer.areaLoad(box)
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const box = {
  min: { x: 0, y: 0, z: 0 },
  max: { x: 100, y: 100, z: 100 }
}
packer.areaLoad(box)

树分支加载(异步加载) | treeBranchLoad

  • 说明:树分支加载(异步加载)

    我们可以调用 Packer 上面的 treeBranchLoad 方法来进行树分支加载。

    树分支加载

    在三维引擎中,picker(选择器)的树分支加载(tree branch loading)指的是通过分层加载,动态加载3D场景中的树形结构,以提高场景的渲染效率和性能。

  • 传参说明

NameTypeDescription
branchidPackerLoadIdPackerLoadId 数据类型

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const pId = [{
  treeId: Number(tree.value),
  nodeId: BigInt(node.value),
}]
packer.treeBranchLoad(pId)
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const pId = [{
  treeId: Number(tree.value),
  nodeId: BigInt(node.value),
}]
packer.treeBranchLoad(pId)

逻辑树加载同步 | loadLogicTree

  • 说明:逻辑树加载同步

    我们可以调用 Packer 上面的 loadLogicTree 方法来进行逻辑树加载同步。

    逻辑树加载

    在三维引擎中,picker(选择器)的逻辑树加载(logic tree loading)指的是通过逻辑结构和节点的加载和缓存,动态加载和渲染3D场景中的物体,以提高场景的加载速度和渲染效率。

  • 传参说明

NameTypeDescription
treeidPackerLoadIdPackerLoadId 数据类型

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const pId = {
  treeId: Number(tree.value),
  nodeId: BigInt(node.value),
}
packer.loadLogicTree(pId)
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const pId = {
  treeId: Number(tree.value),
  nodeId: BigInt(node.value),
}
packer.loadLogicTree(pId)

逻辑树加载异步 | loadLogicTreeAsync

  • 说明:逻辑树加载异步

    我们可以调用 Packer 上面的 loadLogicTree 方法来进行逻辑树加载异步。

  • 传参说明

NameTypeDescription
treeidPackerLoadIdPackerLoadId 数据类型

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const pId = {
  treeId: Number(tree.value),
  nodeId: BigInt(node.value),
}
packer.loadLogicTreeAsync(pId)
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
const pId = {
  treeId: Number(tree.value),
  nodeId: BigInt(node.value),
}
packer.loadLogicTreeAsync(pId)

根据节点guid卸载模型 | unloadModelByGuid

  • 说明:根据节点guid卸载模型

    我们可以调用 Packer 上面的 unloadModelByGuid 方法来根据节点guid卸载模型。

  • 传参说明

NameTypeDescription
guidString节点guid String数据类型

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
packer.unloadModelByGuid(guid)
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
packer.unloadModelByGuid(guid)

根据节点的雪花id卸载模型 | unloadModelBySnowId

  • 说明:根据节点的雪花id卸载模型

    我们可以调用 Packer 上面的 unloadModelBySnowId 方法来根据节点的雪花id卸载模型。

  • 传参说明

NameTypeDescription
idString节点id: snowid 数据类型

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
packer.unloadModelBySnowId(id)
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
packer.unloadModelBySnowId(id)

卸载当前加载的所有节点 | unloadAllModel

  • 说明:卸载当前packer内加载的所有节点

    我们可以调用 Packer 上面的 unloadAllModel方法来卸载当前加载的所有节点。

    调用示例:

    ts
    const destructure = await cloud.getDestructureLoadManagement()
    const packer = await destructure.openR3D(url)
    packer.unloadAllModel()
    const destructure = await cloud.getDestructureLoadManagement()
    const packer = await destructure.openR3D(url)
    packer.unloadAllModel()

    卸获取logic_list表中packerid相关的信息 | getLogicTreeInfoList

  • 说明:获取logic_list表中packerid相关的信息

    我们可以调用 Packer 上面的 getLogicTreeInfoList方法来获取logic_list表中packerid相关的信息。

传参说明

NameTypeDescription
packeridnumber包id:number数据类型

调用示例:

ts
let packerid = 1;
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let info = await packer.getLogicTreeInfoList(packerid)
[{
   treeId : 1 ,
   treeName : dms_pbs_cw,
   treeTable : t_pk1_logictree1,
   treeDesc :f2cc2c2f-202403191522
 }]
let packerid = 1;
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let info = await packer.getLogicTreeInfoList(packerid)
[{
   treeId : 1 ,
   treeName : dms_pbs_cw,
   treeTable : t_pk1_logictree1,
   treeDesc :f2cc2c2f-202403191522
 }]

通过节点snowId获取对应guid | getGuidBySnowId

  • 说明:通过节点snowId获取对应guid

    我们可以调用 Packer 上面的 getGuidBySnowId方法来通过节点snowId获取对应guid。

传参说明

NameTypeDescription
snowIds[GetGuidParam]雪花id:GetGuidParam数据类型

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let pId = [{ treeId : 1, snowId: "7175755915972939776"},{treeId : 1, snowId: "7175755914637541420"}];
let guid = await packer.getGuidByNodeId(pId);
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let pId = [{ treeId : 1, snowId: "7175755915972939776"},{treeId : 1, snowId: "7175755914637541420"}];
let guid = await packer.getGuidByNodeId(pId);

通过节点snowId获取对应guid | getGuidBySnowId

  • 说明:通过节点snowId获取对应guid

    我们可以调用 Packer 上面的 getGuidBySnowId方法来通过节点snowId获取对应guid。

传参说明

NameTypeDescription
guids[GetSnowParam]GetSnowParam

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let pGuid =  [{ treeId : 1, guid: "3c245ebe281c429aa1b1cccae36bdc80"},{treeId : 1, guid: "3842797ee109b61008d13f162235b783"}];
let pid = await packer.getSnowIdByGuid(pGuid);
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let pGuid =  [{ treeId : 1, guid: "3c245ebe281c429aa1b1cccae36bdc80"},{treeId : 1, guid: "3842797ee109b61008d13f162235b783"}];
let pid = await packer.getSnowIdByGuid(pGuid);

通过节点snowId获取对应包围盒 | getLocalBoxBySnowId

  • 说明:通过节点snowId获取对应guid

    我们可以调用 Packer 上面的 getLocalBoxBySnowId方法来通过节点snowId获取对应包围盒。

传参说明

NameTypeDescription
snowIds[GetGuidParam]雪花id:GetGuidParam数据类型

调用示例:

ts
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let pId = [{ treeId : 1, snowId: "7180507561921278090"},{treeId : 1, snowId: "7180507561921278099"}];
let guid = await packer.getLocalBoxBySnowId(pId);
const destructure = await cloud.getDestructureLoadManagement()
const packer = await destructure.openR3D(url)
let pId = [{ treeId : 1, snowId: "7180507561921278090"},{treeId : 1, snowId: "7180507561921278099"}];
let guid = await packer.getLocalBoxBySnowId(pId);