基本体3D元素管理 GeometryManager
基本体3D元素管理器是用于控制云渲染基本体3D元素的工具,通过获取该管理器,用户可以方便地进行基本体3D元素的控制和管理。 该工具的主要功能包括:
- 开启绘制基本体元素
- 开启面绘制事件
- 开启线绘制事件
- 添加基本体
- 批量添加基本体
- 设置绘制完成回调函数
- 设置双击回调函数
- 根据url批量添加几何体
- 终止绘制操作
我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。
GeometryManager
用户可以调用云渲染实例 cloud
上的 getGeometryManager()
方法来获取 GeometryManager
基本体3D元素管理器。
const geometryManager = await cloud.getGeometryManager()
const geometryManager = await cloud.getGeometryManager()
用户调用 cloud.getGeometryManager()
后,GeometryManager
会被自动挂载到当前 cloud
实例上。
await cloud.getGeometryManager()
const geometryManager = cloud.geometryManager
await cloud.getGeometryManager()
const geometryManager = cloud.geometryManager
开启基本体绘制事件 | drawBodyGeometry
- 说明:开启基本体绘制事件
我们可以调用 GeometryManager
上面的 drawBodyGeometry
方法来开启基本体绘制事件。
- 参数说明
Name | Type | Description |
---|---|---|
laylerName | string | - |
type | BodyGeometry | 基本体类型 ('cylinder','Cone','Box','Sphere','Prisme','Hemisphere','FanshapedColumn','AnnularSectorColumn',' AnnulusColumn') |
Style | GeometryBodyStyle | 基本体样式 |
TIP
绘制基本体的时候,需要注意基本体类型BodyGeometry
和基本体样式GeometryBodyStyle
的参数格式,需符合要求,才能绘制成功。
调用示例:
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
方法来开启面绘制事件。
- 参数说明
Name | Type | Description |
---|---|---|
laylerName | string | - |
type | SurfaceGeometry | 基本体类型 ('Rectangle' 'Torus' 'Disk' 'Polygon') |
Style | GeometrySurfaceStyle | 基本体样式 |
调用示例:
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
方法来开启线绘制事件。
- 参数说明
Name | Type | Description |
---|---|---|
laylerName | string | - |
type | Polyline | 基本体类型 |
Style | GeometryLineStyle | 基本体样式 |
调用示例:
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
方法来添加基本体。
- 参数说明
Name | Type | Description |
---|---|---|
Params | any | 格式json |
调用示例:
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
方法来批量添加基本体。
- 参数说明
Name | Type | Description |
---|---|---|
params | any | 格式json 批量添加基本体的参数 |
调用示例:
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
方法来设置绘制完成的回调函数。
- 参数说明
Name | Type | Description |
---|---|---|
fn | (object : null | GeometryObject ) => void | 函数对象,参数为Node|null,返回值为void |
调用示例:
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
方法来设置双击回调函数。
- 参数说明
Name | Type | Description |
---|---|---|
fn | (object : null | GeometryObject ) => void | 函数对象,参数为Node|null,返回值为void |
调用示例:
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批量添加几何体。
- 参数说明
Name | Type | Description |
---|---|---|
url | string | 几何体数据来源url地址 数据格式: { "geometrys":[ { "guid":xxxx, //自定义几何体guid "layerName": "new", //图层名 "Material": "0xff0000ff", //颜色 RGB形式 "Params":{}, //几何体数据 "Type":"", //几何体类型 }, { "guid":xxxx, //自定义几何体guid "layerName": "wfw", //图层名 "Material": "0xff0000ff", ////颜色 RGB形式 "Params":{}, //几何体数据 "Type":"", //几何体类型 }, ] } |
调用示例:
const geometryManager = await cloud.getGeometryManager()
await geometryManager.addGeometryByUrl(url)
const geometryManager = await cloud.getGeometryManager()
await geometryManager.addGeometryByUrl(url)
终止绘制操作 | stopDrawing
- 说明:终止绘制操作
我们可以调用 GeometryManager
上面的 stopDrawing
方法来根终止绘制操作。
调用示例:
const geometryManager = await cloud.getGeometryManager()
await geometryManager.stopDrawing()
const geometryManager = await cloud.getGeometryManager()
await geometryManager.stopDrawing()