{"version":3,"file":"ThreeLightPoint.mjs","sources":["../../../../packages/ThreeLightPoint/ThreeLightPoint.ts"],"sourcesContent":["import {PointLight, Color} from 'three';\r\nimport type {Vec} from './Type';\r\nimport type CustomThreeLayer from '../ThreeLayer/CustomThreeLayer'\r\n\r\ninterface Options {\r\n  color: string // 颜色的rgb数值。缺省值为 0xffffff。\r\n  intensity: number  // 光照的强度。缺省值为 1。\r\n  distance: number // 这个距离表示从光源到光照强度为0的位置。 当设置为0时，光永远不会消失(距离无穷大)\r\n  decay: number // 沿着光照距离的衰退量。缺省值 1\r\n  position: Vec // 点位置\r\n}\r\n\r\nclass ThreeLightPoint {\r\n  object: PointLight | null // Light\r\n  layer: CustomThreeLayer | null // threejs的图层对象\r\n\r\n  constructor(layer: CustomThreeLayer, options: Options) {\r\n    this.layer = layer;\r\n    const light = new PointLight(this.getColorHex(options.color), options.intensity, options.distance, options.decay);\r\n    this.object = light;\r\n    this.setPosition(options.position);\r\n    layer.add(light);\r\n  }\r\n\r\n  setColor(color: string) {\r\n    this.object!.color = new Color(color);\r\n    this.refresh();\r\n  }\r\n\r\n  getColorHex(color: string){\r\n    return new Color(color).getHex();\r\n  }\r\n\r\n  setIntensity(intensity: number) {\r\n    this.object!.intensity = intensity;\r\n    this.refresh();\r\n  }\r\n\r\n  setPosition(position: Vec){\r\n    const positionConvert = this.layer?.convertLngLat([position.x, position.y]);\r\n    this.object!.position.set(positionConvert[0], positionConvert[1], position.z);\r\n    this.refresh();\r\n  }\r\n\r\n  refresh() {\r\n    this.layer?.update();\r\n  }\r\n\r\n  remove(){\r\n    if (this.object) {\r\n      this.layer?.remove(this.object)\r\n    }\r\n  }\r\n\r\n  destroy() {\r\n    if (this.object) {\r\n      this.object = null;\r\n      this.layer = null;\r\n    }\r\n  }\r\n}\r\n\r\nexport default ThreeLightPoint\r\n"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,eAAgB,CAAA;AAAA;AAAA,EAIpB,WAAA,CAAY,OAAyB,OAAkB,EAAA;AAHvD,IAAA,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AACA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;AAGE,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AACb,IAAA,MAAM,KAAQ,GAAA,IAAI,UAAW,CAAA,IAAA,CAAK,WAAY,CAAA,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAQ,CAAA,SAAA,EAAW,OAAQ,CAAA,QAAA,EAAU,QAAQ,KAAK,CAAA,CAAA;AAChH,IAAA,IAAA,CAAK,MAAS,GAAA,KAAA,CAAA;AACd,IAAK,IAAA,CAAA,WAAA,CAAY,QAAQ,QAAQ,CAAA,CAAA;AACjC,IAAA,KAAA,CAAM,IAAI,KAAK,CAAA,CAAA;AAAA,GACjB;AAAA,EAEA,SAAS,KAAe,EAAA;AACtB,IAAA,IAAA,CAAK,MAAQ,CAAA,KAAA,GAAQ,IAAI,KAAA,CAAM,KAAK,CAAA,CAAA;AACpC,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,GACf;AAAA,EAEA,YAAY,KAAc,EAAA;AACxB,IAAA,OAAO,IAAI,KAAA,CAAM,KAAK,CAAA,CAAE,MAAO,EAAA,CAAA;AAAA,GACjC;AAAA,EAEA,aAAa,SAAmB,EAAA;AAC9B,IAAA,IAAA,CAAK,OAAQ,SAAY,GAAA,SAAA,CAAA;AACzB,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,GACf;AAAA,EAEA,YAAY,QAAc,EAAA;AAtC5B,IAAA,IAAA,EAAA,CAAA;AAuCI,IAAM,MAAA,eAAA,GAAA,CAAkB,UAAK,KAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAY,cAAc,CAAC,QAAA,CAAS,CAAG,EAAA,QAAA,CAAS,CAAC,CAAA,CAAA,CAAA;AACzE,IAAK,IAAA,CAAA,MAAA,CAAQ,QAAS,CAAA,GAAA,CAAI,eAAgB,CAAA,CAAC,GAAG,eAAgB,CAAA,CAAC,CAAG,EAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAC5E,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,GACf;AAAA,EAEA,OAAU,GAAA;AA5CZ,IAAA,IAAA,EAAA,CAAA;AA6CI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,UAAL,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA,CAAA;AAAA,GACd;AAAA,EAEA,MAAQ,GAAA;AAhDV,IAAA,IAAA,EAAA,CAAA;AAiDI,IAAA,IAAI,KAAK,MAAQ,EAAA;AACf,MAAK,CAAA,EAAA,GAAA,IAAA,CAAA,KAAA,KAAL,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAO,IAAK,CAAA,MAAA,CAAA,CAAA;AAAA,KAC1B;AAAA,GACF;AAAA,EAEA,OAAU,GAAA;AACR,IAAA,IAAI,KAAK,MAAQ,EAAA;AACf,MAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAA;AACd,MAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF;AACF;;;;"}