Class: TopologyLine

TopologyLine

拓扑线对象,提供绘制连接图层树上模型的拓扑线的相关操作方法
一般通过api.topologyLine调用其方法


<protected> new TopologyLine()

See:
  • DigitalTwinAPI#topologyLine调用其方法

Extends

Methods


add(data, fn)

添加一个或多个TopologyLine对象

Parameters:
Name Type Description
data object | array

待添加的拓扑线数据,可以是Object类型或者Array类型,对于每一个TopologyLine对象,支持以下属性:

  • id (string) 字符串类型的ID

  • groupId (string) 可选,Group分组

  • userData (string) 可选,用户自定义数据

  • color (Color) 颜色值,支持四种格式,取值示例

  • objectIds (array) 待连接的拓扑线的模型节点ID,即图层树上模型的ID数组,取值示例:["E78C50304F64ED20151624970CFA4FED","8ECFECA747068210E87C618F8DF0B3E5"...],

  • range (array) 可视范围: [近裁距离, 远裁距离],取值范围: [任意负值, 任意正值]

  • thickness (number) 线宽,单位:米,默认值20

  • intensity (number) 亮度,取值范围:[0~1000],默认值:0.5

  • flowRate (number) 流速,取值范围:[0~1.0],默认值:0.5

  • depthTest (boolean) 是否做深度检测,默认为true,true会被遮挡,false不会被遮挡

  • shape (number) 样式,0:直线, 1:曲线,注意:设置为曲线坐标点多的时候会非常影响添加添加效率

  • style (PolylineStyle) 折线样式,箭头/光流/贴地/实线/虚线等,取值范围:[0~7],详情参考 PolylineStyle

  • tiling (number) 可选参数,材质贴图平铺比例,和PolylineStyle取值有关,目前仅部分样式支持此参数,从起始位置开始平铺,超过的部分会按此比例生成新的区域,类似CSS的repeat。如果这个值 <= 0 使用自动计算按Polyline长度比例平铺, >0使用用户输入的值去平铺

  • material (string) 可选参数,自定义材质路径,即资源库PAK文件里材质文件的路径,设置自定义材质参数后style相关参数会失效

  • scalarParameters (array) 可选参数,仅在设置自定义材质路径后生效,自定义材质数值类型参数,包含name/value键值对的数组,其中value为数值,格式示例:[{"name":"不透明度","value":0.5},{"name":"UV重复","value":1.0}]

  • vectorParameters (array) 可选参数,仅在设置自定义材质路径后生效,自定义材质矢量类型参数,包含name/value键值对的数组,其中value为数组,格式示例:[{"name":"color1","value":[1,1,1,1]},{"name":"color2","value":[1,0,0,1]}]

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


clear(fn)

删除场景中所有的TopologyLine

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


delete(ids, fn)

删除一个或多个TopologyLine对象

Parameters:
Name Type Description
ids string | array

要删除的TopologyLine对象的ID或者ID数组(可以删除一个或者多个)

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


focus(ids, distance, flyTime, rotation, fn)

自动定位到合适的观察距离

Parameters:
Name Type Description
ids string | array

TopologyLine对象的ID或者ID数组

distance number

可选参数,观察点距离目标点(被拍摄物体)的距离,取值范围:[0.01~任意正数],如果设置为0或者不设置,系统自动计算

flyTime number

可选参数,相机飞行的时间,取值范围:[0~任意正数],单位:秒,默认值2秒

rotation array

可选参数,相机旋转的欧拉角:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:Pitch[-90~90] Yaw[-180~180] Roll[0]

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


get(ids, fn)

根据ID获取TopologyLine的详细信息

Parameters:
Name Type Description
ids string | array

要获取的TopologyLine对象ID或者ID数组(可以获取一个或者多个)

fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
TopologyLine的详细信息
[
        {
            "id": "p1",
            "objectIds": [
                "E78C50304F64ED20151624970CFA4FED",
                "8ECFECA747068210E87C618F8DF0B3E5",
                "1F95B7BD4A993AF2D9C4ECA3A214EA77"
            ],
            "range": [
                1,
                10000
            ],
            "color": [
                1,
                0,
                0,
                1
            ],
            "thickness": 100,
            "flowRate": 1.5,
            "shape": 1,
            "depthTest": false,
            "style": 0,
            "tiling": 3,
            "brightness": 0.8
        }
        ]

hide(ids, fn)

隐藏TopologyLine对象

Parameters:
Name Type Description
ids string | array

TopologyLine对象的ID或者ID数组

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


hideAll(fn)

隐藏所有TopologyLine对象

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


show(ids, fn)

显示TopologyLine对象

Parameters:
Name Type Description
ids string | array

TopologyLine对象的ID或者ID数组

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


showAll(fn)

显示所有TopologyLine对象

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


update(topologyLine, fn)

修改一个或多个·TopologyLine对象

Parameters:
Name Type Description
topologyLine object | array

对象数据结构,结构参考add()方法

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


updateBegin()

用于批量多次修改对象的属性

在开始修改之前调用updateBegin,然后可以多次调用setXXX方法,最后调用updateEnd提交修改更新数据
注意:
updateBegin不是异步调用,不需要await,也没有回调函数参数

Inherited From:
Overrides:
Example
fdapi.xxx.updateBegin();
for (let i = 0; i < 1000; i++) {
     fdapi.xxx.setColor(i, Color.Yellow);
} 
fdapi.xxx.updateEnd(function () {
     log('update finished!');
});

updateEnd(fn)

用于批量多次修改对象的属性,与updateBegin配套使用
注意:
updateEnd是异步调用,可以用回调函数也可以await

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Inherited From:
Overrides: