Skip to content
导览

剖切对象操作 SectionObject

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

  1. 开启剖切轴控制
  2. 结束剖切轴控制
  3. 获取此剖切盒或面的Transform
  4. 通过Transform设置此剖切面或盒的位置姿态
  5. 获取此剖切类型
  6. 获取此剖切面或盒的方向
  7. 获取此剖切面或盒的显示状态
  8. 设置此剖切面或盒的显示状态

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

开启剖切轴控制 | openControl

  • 说明:开启剖切轴控制

我们可以调用 SectionObject 上面的 openControl 方法来开启剖切轴的控制。

调用示例:

ts
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
await obj.openControl()
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
await obj.openControl()

结束剖切轴控制 | endControl

  • 说明:结束剖切轴控制

我们可以调用 SectionObject 上面的 endControl 方法来开启剖切轴的控制。

调用示例:

ts
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
await obj.endControl()
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
await obj.endControl()

获取此剖切盒或面的Transform | getSectionInfo

  • 说明:获取此剖切盒或面的Transform

我们可以调用 SectionObject 上面的 getSectionInfo 方法来获取此剖切盒或面的Transform。

调用示例:

ts
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const trans = await obj.getSectionInfo()
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const trans = await obj.getSectionInfo()

Transform位置姿态

通过Transform设置此剖切面或盒的位置姿态 | setSectionInfo

  • 说明:通过Transform设置此剖切面或盒的位置姿态

我们可以调用 SectionObject 上面的 setSectionInfo 方法来通过Transform设置此剖切面或盒的位置姿态。

  • 参数说明
NameType
transTransform

调用示例:

ts
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
await obj.setSectionInfo(trans)
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
await obj.setSectionInfo(trans)

获取此剖切类型 | openControl

  • 说明:获取此剖切类型

我们可以调用 SectionObject 上面的 getType 方法来获取此剖切类型。

调用示例:

ts
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const type = await obj.getType();
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const type = await obj.getType();

获取此剖切面或盒的方向 | getDir

  • 说明:获取此剖切面或盒的方向

我们可以调用 SectionObject 上面的 getDir 方法来获取此剖切面或盒的方向。

调用示例:

ts
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const dir = await obj.getDir();
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const dir = await obj.getDir();

获取此剖切面或盒的显示状态 | getSectionShowState

  • 说明:获取此剖切面或盒的显示状态

我们可以调用 SectionObject 上面的 getSectionShowState 方法来获取此剖切面或盒的显示状态。

调用示例:

ts
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const state = await obj.getSectionShowState();
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
const state = await obj.getSectionShowState();

设置此剖切面或盒的显示状态 | setSectionShowState

  • 说明:设置此剖切面或盒的显示状态

我们可以调用 SectionObject 上面的 setSectionShowState 方法来设置此剖切面或盒的显示状态。

  • 参数说明
NameTypeDescription
isShowbooleantrue显示 false隐藏

调用示例:

ts
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
await obj.setSectionShowState(true);
await cloud.getSectioningManager()
const sceManager = await cloud.getSceneManager()
const rootNode = await sceManager.getRootNode3D()// 获取根节点
const translation1 = new Vector3(10, 0, 0)
const eulerAngle1 = new Euler(0, 0, 0)
const scaling1 = new Vector3(1, 1, 1)
const trans = new Transform(translation1, eulerAngle1, scaling1)
const state: NodeState = {
  color: '0xFF0000',
  opacity: 100,
  show: true,
}
const obj = await cloud.sectioningManager.addBoxSection(trans, rootNode!, state)
await obj.setSectionShowState(true);