Skip to content
导览

基本体3D元素管理 GeometryManager

基本体3D元素管理器是用于控制云渲染基本体3D元素的工具,通过获取该管理器,用户可以方便地进行基本体3D元素的控制和管理。 该工具的主要功能包括:

  1. 开启绘制基本体元素
  2. 开启面绘制事件
  3. 开启线绘制事件
  4. 添加基本体
  5. 批量添加基本体
  6. 设置绘制完成回调函数
  7. 设置双击回调函数
  8. 根据url批量添加几何体
  9. 终止绘制操作

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

GeometryManager

用户可以调用云渲染实例 cloud 上的 getGeometryManager() 方法来获取 GeometryManager 基本体3D元素管理器。

ts
const geometryManager = await cloud.getGeometryManager()
const geometryManager = await cloud.getGeometryManager()

用户调用 cloud.getGeometryManager() 后,GeometryManager 会被自动挂载到当前 cloud 实例上。

ts
await cloud.getGeometryManager()
const geometryManager = cloud.geometryManager
await cloud.getGeometryManager()
const geometryManager = cloud.geometryManager

开启基本体绘制事件 | drawBodyGeometry

  • 说明:开启基本体绘制事件

我们可以调用 GeometryManager 上面的 drawBodyGeometry 方法来开启基本体绘制事件。

  • 参数说明
NameTypeDescription
laylerNamestring-
typeBodyGeometry基本体类型 ('cylinder','Cone','Box','Sphere','Prisme','Hemisphere','FanshapedColumn','AnnularSectorColumn',' AnnulusColumn')
StyleGeometryBodyStyle基本体样式

TIP

绘制基本体的时候,需要注意基本体类型BodyGeometry 和基本体样式GeometryBodyStyle的参数格式,需符合要求,才能绘制成功。

调用示例:

ts
const geometryManager = await cloud.getGeometryManager()
const param = {
  m_color: '0xffffffff'
}
geometryManager.drawBodyGeometry('wfw', 'Cylinder', param)
const geometryManager = await cloud.getGeometryManager()
const param = {
  m_color: '0xffffffff'
}
geometryManager.drawBodyGeometry('wfw', 'Cylinder', param)

开启面绘制事件 | drawSurfaceGeometry

  • 说明:开启面绘制事件

我们可以调用 GeometryManager 上面的 drawSurfaceGeometry 方法来开启面绘制事件。

  • 参数说明
NameTypeDescription
laylerNamestring-
typeSurfaceGeometry基本体类型 ('Rectangle' 'Torus' 'Disk' 'Polygon')
StyleGeometrySurfaceStyle基本体样式

调用示例:

ts
const geometryManager = await cloud.getGeometryManager()
const param = {
  m_color: '0xffffffff'
}
geometryManager.drawSurfaceGeometry('wfw', 'Disk', param)
const geometryManager = await cloud.getGeometryManager()
const param = {
  m_color: '0xffffffff'
}
geometryManager.drawSurfaceGeometry('wfw', 'Disk', param)

开启线绘制事件 | drawLineGeometry

  • 说明:开启线绘制事件

我们可以调用 GeometryManager 上面的 drawLineGeometry 方法来开启线绘制事件。

  • 参数说明
NameTypeDescription
laylerNamestring-
typePolyline基本体类型
StyleGeometryLineStyle基本体样式

调用示例:

ts
const geometryManager = await cloud.getGeometryManager()
const param = {
  m_color: '0xffffffff',
  m_LineWidth: 0.1
}
geometryManager.drawLineGeometry('wfw', 'Polyline', param)
const geometryManager = await cloud.getGeometryManager()
const param = {
  m_color: '0xffffffff',
  m_LineWidth: 0.1
}
geometryManager.drawLineGeometry('wfw', 'Polyline', param)

添加基本体 | addGeometry

  • 说明:添加基本体

我们可以调用 GeometryManager 上面的 addGeometry 方法来添加基本体。

  • 参数说明
NameTypeDescription
Paramsany格式json

调用示例:

ts
const geometryManager = await cloud.getGeometryManager()
const param = {
  layerName: 'wfw',
  Material: '0xff0000ff',
  Params:
{
  EndPoint:
    [
      32.762351989746094,
      0.019871402531862259,
      12.645557403564453,
    ],
  Radius: 1.0,
  StartPoint:
     [
       32.762351989746094,
       1.0198713541030884,
       12.645557403564453,
     ],
},
  Type: 'Cylinder:',
}
await geometryManager.addGeometry(param)
const geometryManager = await cloud.getGeometryManager()
const param = {
  layerName: 'wfw',
  Material: '0xff0000ff',
  Params:
{
  EndPoint:
    [
      32.762351989746094,
      0.019871402531862259,
      12.645557403564453,
    ],
  Radius: 1.0,
  StartPoint:
     [
       32.762351989746094,
       1.0198713541030884,
       12.645557403564453,
     ],
},
  Type: 'Cylinder:',
}
await geometryManager.addGeometry(param)

批量添加基本体 | addGeometryForJson

  • 说明:批量添加基本体

我们可以调用 GeometryManager 上面的 addGeometryForJson 方法来批量添加基本体。

  • 参数说明
NameTypeDescription
paramsany格式json 批量添加基本体的参数

调用示例:

ts
const param
= {
  geometrys: [
    {
      layerName: 'new',
      Material: '0xff0000ff',
      Params:
{
  EndPoint:
    [
      32.762351989746094,
      0.019871402531862259,
      12.645557403564453,
    ],
  Radius: 1.0,
  StartPoint:
     [
       32.762351989746094,
       1.0198713541030884,
       12.645557403564453,
     ],
},
      Type: 'Cylinder:',
    },
    {
      layerName: 'wfw',
      Material: '0xff0000ff',
      Params:
{
  EndPoint:
    [
      13.762351989746094,
      0.019871402531862259,
      6.645557403564453,
    ],
  InnerRadius: 1.0,
  OutterRadius: 2.0,
  StartPoint:
     [
       13.762351989746094,
       1.0198713541030884,
       6.645557403564453,
     ],
},
      Type: 'CylinderShell:',
    }],
}
const geometryManager = await cloud.getGeometryManager()
await geometryManager.addGeometryForJson (param)
const param
= {
  geometrys: [
    {
      layerName: 'new',
      Material: '0xff0000ff',
      Params:
{
  EndPoint:
    [
      32.762351989746094,
      0.019871402531862259,
      12.645557403564453,
    ],
  Radius: 1.0,
  StartPoint:
     [
       32.762351989746094,
       1.0198713541030884,
       12.645557403564453,
     ],
},
      Type: 'Cylinder:',
    },
    {
      layerName: 'wfw',
      Material: '0xff0000ff',
      Params:
{
  EndPoint:
    [
      13.762351989746094,
      0.019871402531862259,
      6.645557403564453,
    ],
  InnerRadius: 1.0,
  OutterRadius: 2.0,
  StartPoint:
     [
       13.762351989746094,
       1.0198713541030884,
       6.645557403564453,
     ],
},
      Type: 'CylinderShell:',
    }],
}
const geometryManager = await cloud.getGeometryManager()
await geometryManager.addGeometryForJson (param)

设置绘制完成的回调函数 | setFinishedCallback

  • 说明:设置绘制完成的回调函数

我们可以调用 GeometryManager 上面的 setFinishedCallback 方法来设置绘制完成的回调函数。

  • 参数说明
NameTypeDescription
fn(object: null | GeometryObject) => void函数对象,参数为Node|null,返回值为void

调用示例:

ts
async function CallBack( GeometryObject | null) {
console.warn(GeometryObject)
}
const geometryManager = await cloud.getGeometryManager();
await geometryManager.setFinishedCallback(CallBack);
async function CallBack( GeometryObject | null) {
console.warn(GeometryObject)
}
const geometryManager = await cloud.getGeometryManager();
await geometryManager.setFinishedCallback(CallBack);

设置双击回调函数 | setDoubleClickCallback

  • 说明:设置双击回调函数

我们可以调用 GeometryManager 上面的 setDoubleClickCallback 方法来设置双击回调函数。

  • 参数说明
NameTypeDescription
fn(object: null | GeometryObject) => void函数对象,参数为Node|null,返回值为void

调用示例:

ts
async function CallBack( GeometryObject | null) {
console.warn(GeometryObject)
}
const geometryManager = await cloud.getGeometryManager();
await geometryManager.setDoubleClickCallback(CallBack);
async function CallBack( GeometryObject | null) {
console.warn(GeometryObject)
}
const geometryManager = await cloud.getGeometryManager();
await geometryManager.setDoubleClickCallback(CallBack);

根据url批量添加几何体 | addGeometryByUrl

  • 说明:根据url批量添加几何体

我们可以调用 GeometryManager 上面的 addGeometryByUrl 方法来根据url批量添加几何体。

  • 参数说明
NameTypeDescription
urlstring几何体数据来源url地址 数据格式: { "geometrys":[ { "guid":xxxx, //自定义几何体guid "layerName": "new", //图层名 "Material": "0xff0000ff", //颜色 RGB形式 "Params":{}, //几何体数据 "Type":"", //几何体类型 }, { "guid":xxxx, //自定义几何体guid "layerName": "wfw", //图层名 "Material": "0xff0000ff", ////颜色 RGB形式 "Params":{}, //几何体数据 "Type":"", //几何体类型 }, ] }

调用示例:

ts
const geometryManager = await cloud.getGeometryManager()
await geometryManager.addGeometryByUrl(url)
const geometryManager = await cloud.getGeometryManager()
await geometryManager.addGeometryByUrl(url)

终止绘制操作 | stopDrawing

  • 说明:终止绘制操作

我们可以调用 GeometryManager 上面的 stopDrawing 方法来根终止绘制操作。

调用示例:

ts
const geometryManager = await cloud.getGeometryManager()
await geometryManager.stopDrawing()
const geometryManager = await cloud.getGeometryManager()
await geometryManager.stopDrawing()