Skip to content
导览

高级操作 AdvancedOperations

高级操作管理器是用于控制云渲染高级操作功能的工具,通过获取该管理器,用户可以方便地进行高级操作控制和管理。 该工具的主要功能包括:

  1. 开启或关闭框选
  2. 反选节点
  3. 隔离节点
  4. 坐标转换(对选中节点进行平移,旋转等操作)
  5. 设置节点自发光
  6. 清除节点自发光

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

advancedOpe

用户可以调用云渲染实例 cloud 上的 getAdvancedOperations() 方法来获取 AdvancedOperations 高级操作管理器。

ts
const advancedOpe = await cloud.getAdvancedOperations()
const advancedOpe = await cloud.getAdvancedOperations()

用户调用 cloud.getAdvancedOperations() 后,advancedOpe 属性会被自动挂载到当前 cloud 实例上。

ts
await cloud.getAdvancedOperations()
const advancedOpe = cloud.advancedOpe
await cloud.getAdvancedOperations()
const advancedOpe = cloud.advancedOpe

框选节点 | boxSelection

  • 说明:框选功能

我们可以调用 AdvancedOperations 上面的 boxSelection 方法,来开启或关闭框选功能。

框选

模型节点框选功能是指通过绘制一个矩形框,选择框内的所有节点来实现特定操作的功能,这种功能可以方便地对模型的一部分进行特定操作。

  • 参数说明
NameTypeDescription
parambooleantrue:开启 false:关闭

调用示例:

ts
const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.boxSelection(true)
const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.boxSelection(true)

框选完成回调

  • 说明:设置框选完成的回调函数

我们可以设置 AdvancedOperations 上面的 setBoxSelectionCallback 回调函数来获取框选结果。

  • 参数说明
NameTypeDescription
fn(node: VirtualNode) => void回调函数,node为回调数据

调用示例:

ts
function BoxSelection(node: VirtualNode) {
  console.log(node)
}
const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.setBoxSelectionCallback(BoxSelection)
function BoxSelection(node: VirtualNode) {
  console.log(node)
}
const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.setBoxSelectionCallback(BoxSelection)

反选节点 | inverseSelection

  • 说明:获取除选中节点以外的所有节点

我们可以调用 AdvancedOperations 上面的 inverseSelection 方法,来实现节点的反选。

反选

模型节点反选功能是指通过选择部分节点对其它节点进行反选,即将未选择的节点选中,已选择的节点变为未选择。

  • 参数说明
NameTypeDescription
selectionNodeVirtualNode被选择虚拟节点
rootNode模型3d根节点

调用示例:

ts
const advancedOpe = await cloud.getAdvancedOperations()
const sceneNode = await advancedOpe.inverseSelection(selectionNode, root)
const advancedOpe = await cloud.getAdvancedOperations()
const sceneNode = await advancedOpe.inverseSelection(selectionNode, root)

隔离展示 | isolatedDisplay

  • 说明:使除被选中节点以外的所有节点透明

我们可以调用 AdvancedOperations 上面的 isolatedDisplay 方法,来实现隔离功能。

隔离

通过设置某些节点的透明度,可以让其他节点可以透过它们显示,从而达到隔离的效果。

  • 参数说明
NameTypeDescription
isolatedNodeNode[] | VirtualNode传入节点
transparentnumber透明度 范围在0-100 如果透明度为0,则其他节点隐藏

调用示例:

ts
const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.isolatedDisplay(isolatedNode, transparent)
const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.isolatedDisplay(isolatedNode, transparent)

坐标转换 | openNodeTransform

  • 说明:对选中节点进行平移,旋转等操作

我们可以调用 AdvancedOperations 上面的 openNodeTransform 方法,来对节点进行平移或者旋转等操作。

坐标转换

模型节点坐标转换功能是指将节点从一个坐标系转换到另一个坐标系的功能。这种功能可以方便地操作模型节点的位置,并快速定位和编辑节点。

  • 参数说明
NameTypeDescription
nodeNode | null选中节点
boperboolean是否操作, true:开启操作 fasle:关闭操作

调用示例:

ts
const advancedOpe = await cloud.getAdvancedOperations()
await advancedOpe.openNodeTransform(node, boper)
const advancedOpe = await cloud.getAdvancedOperations()
await advancedOpe.openNodeTransform(node, boper)

坐标转换完成回调 | setTransChanged

  • 说明:设置节点转换完成的回调函数

我们可以设置 AdvancedOperations 上面的 setTransChanged 回调函数来获取坐标转换完成的结果。

  • 参数说明
  • 回调函数 localAxisPos:坐标轴位置, degree:旋转角度, axis:轴法线
  • 仅当degree和axis不为空时是旋转
NameTypeDescription
fn(localAxisPos: Vector3, degree: number 或 null, axis:Vector3 | null) => void回调函数

调用示例:

ts
function TransChanged(localAxisPos: Vector3, degree: number | null, axis: Vector3 | null) {
  console.log(localAxisPos)
  if (degree)
    console.log(degree)
  if (axis)
    console.log(axis)
}

const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.setTransChanged(TransChanged)
function TransChanged(localAxisPos: Vector3, degree: number | null, axis: Vector3 | null) {
  console.log(localAxisPos)
  if (degree)
    console.log(degree)
  if (axis)
    console.log(axis)
}

const advancedOpe = await cloud.getAdvancedOperations()
advancedOpe.setTransChanged(TransChanged)

设置节点自发光 | setGlowEffect

  • 说明:设置节点自发光

我们可以设置 AdvancedOperations 上面的 setGlowEffect 来设置节点自发光。

  • 参数说明
NameTypeDescription
nodesNode[]节点组
colorstring颜色
strengthnumber-

调用示例:

ts
const advancedOperationsManager = await cloud.getAdvancedOperations()
await advancedOperationsManager.setGlowEffect([nodes], '0xffff0000', 70);
const advancedOperationsManager = await cloud.getAdvancedOperations()
await advancedOperationsManager.setGlowEffect([nodes], '0xffff0000', 70);

清除节点自发光 | clearGlowEffect

  • 说明:清除节点自发光

我们可以设置 AdvancedOperations 上面的 clearGlowEffect 来清除节点自发光。

  • 参数说明
NameTypeDescription
nodesNode[]节点组

调用示例:

ts
const advancedOperationsManager = await cloud.getAdvancedOperations()
await advancedOperationsManager.clearGlowEffect([nodes]);
const advancedOperationsManager = await cloud.getAdvancedOperations()
await advancedOperationsManager.clearGlowEffect([nodes]);