Class: Light

Light

Light光源对象,实现对光源对象的操作
一般通过api.light调用其方法


new Light()

See:

Extends

Methods


add(data, fn)

添加一个或多个光源对象 注意:当批量添加多个光源时,渲染阴影效果会非常耗性能,建议默认关闭

Parameters:
Name Type Description
data object | array

动态标记的数据,可以是Object类型或者Array类型,对于每一个Light对象,支持以下属性:

  • id (string) 光源的唯一标识符ID

  • groupId (string) 可选,Group分组

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

  • type (number) 光源类型: 1点光源 2聚光源 3矩形光源

  • coordinateType (number) 坐标系类型,取值范围:0为Projection类型,1为WGS84类型,2为火星坐标系(GCJ02),3为百度坐标系(BD09),默认值:0

  • coordinates (array) 光源位置坐标,二维数组,光源类型是点光源和聚光源时参数为单个坐标点: [[X,Y,Z]],光源类型是矩形光源时参数为包含起始点的坐标数组:[[X1,Y1,Z1], [X2,Y2,Z2]],取值示例

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

  • rotation (array) 光源旋转角度:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值],默认值:[0,0,0]

  • intensity (number) 光源亮度,单位:流明,取值范围:[0~任意数值],默认值:8

  • distance (number) 光源的可视距离,单位:米,取值范围:[1~任意正数],默认值:5000米

  • attenuationRadius (number) 光源衰减半径,单位:米,取值范围:[0~任意数值]

  • castShadows (boolean) 光源是否开启阴影效果,注意:当添加多个光源时非常耗性能,默认关闭false

  • outerConAngle (number) 可选参数,聚光源投射的扇形夹角,单位:度,取值范围:[0~180],默认值:45度,仅光源类型为聚光源时(type=2)生效

  • thickness (number) 可选参数,矩形光源的宽度,单位:米,取值范围:[0.1~20000],默认值:3米,仅光源类型为矩形光源时(type=3)生效

  • automate (boolean) 可选参数,是否根据系统时间自动开关,即开启后晚上自动亮白天自动灭,默认值:true

fn function

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


clear(fn)

清空场景中所有的光源对象

Parameters:
Name Type Description
fn function

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


delete(ids, fn)

删除一个或多个光源对象

Parameters:
Name Type Description
ids string | array

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

fn function

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


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

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

Parameters:
Name Type Description
ids string | array

光源对象的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获取光源的详细信息

Parameters:
Name Type Description
ids string | array

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

fn function

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

Example
返回Light的详细信息 属性详情参见add方法参数
{
            "id":	"light_1",
            "groupId":	"",
            "userData":	"",
            "rotation":	[0.000000, 0.000000, 0.000000],
            "type":	1,
            "intensity":	20000.000000,
            "distance": 1000,
            "outerConAngle":	45.000000,
            "attenuationRadius":	100000.000000,
            "castShadows":	0,
            "thickness":	3.000000,
            "color":	[0.000000, 1.000000, 0.000000, 1.000000]
        }

hide(ids, fn)

隐藏光源

Parameters:
Name Type Description
ids string | array

光源对象的ID或者ID数组

fn function

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


hideAll(fn)

隐藏所有光源

Parameters:
Name Type Description
fn function

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


show(ids, fn)

显示光源

Parameters:
Name Type Description
ids string | array

光源对象的ID或者ID数组

fn function

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


showAll(fn)

显示所有光源

Parameters:
Name Type Description
fn function

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


update(data, fn)

修改一个或多个光源对象

Parameters:
Name Type Description
data data | array

光源对象或对象数组,参考add方法

fn function

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


updateBegin()

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

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

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

updateEnd(fn)

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

Parameters:
Name Type Description
fn function

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

Inherited From:
Overrides: