{"version":3,"file":"ThreeLightDirectional.mjs","sources":["../../../../packages/ThreeLightDirectional/ThreeLightDirectional.ts"],"sourcesContent":["import {DirectionalLight, 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  position: Vec // 灯光位置\r\n  target: any // 目标位置\r\n}\r\n\r\nclass ThreeLightDirectional {\r\n  object: DirectionalLight | 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 DirectionalLight(this.getColorHex(options.color), options.intensity);\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    this.object!.position.set(position.x, position.y, position.z);\r\n    this.refresh();\r\n  }\r\n\r\n  setTarget(target?: any){\r\n    if(target){\r\n      this.object!.target = target;\r\n      this.refresh();\r\n    }\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 ThreeLightDirectional\r\n"],"names":[],"mappings":";;;;;;;;AAWA,MAAM,qBAAsB,CAAA;AAAA;AAAA,EAI1B,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,IAAM,MAAA,KAAA,GAAQ,IAAI,gBAAiB,CAAA,IAAA,CAAK,YAAY,OAAQ,CAAA,KAAK,CAAG,EAAA,OAAA,CAAQ,SAAS,CAAA,CAAA;AACrF,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;AACxB,IAAK,IAAA,CAAA,MAAA,CAAQ,SAAS,GAAI,CAAA,QAAA,CAAS,GAAG,QAAS,CAAA,CAAA,EAAG,SAAS,CAAC,CAAA,CAAA;AAC5D,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,GACf;AAAA,EAEA,UAAU,MAAa,EAAA;AACrB,IAAA,IAAG,MAAO,EAAA;AACR,MAAA,IAAA,CAAK,OAAQ,MAAS,GAAA,MAAA,CAAA;AACtB,MAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,KACf;AAAA,GACF;AAAA,EAEA,OAAU,GAAA;AAjDZ,IAAA,IAAA,EAAA,CAAA;AAkDI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,UAAL,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA,CAAA;AAAA,GACd;AAAA,EAEA,MAAQ,GAAA;AArDV,IAAA,IAAA,EAAA,CAAA;AAsDI,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;;;;"}