{"version":3,"file":"ThreeLightHemisphere.mjs","sources":["../../../../packages/ThreeLightHemisphere/ThreeLightHemisphere.ts"],"sourcesContent":["import {HemisphereLight, Color} from 'three';\r\nimport type {Vec} from \"./Type\";\r\nimport type CustomThreeLayer from '../ThreeLayer/CustomThreeLayer'\r\n\r\n\r\ninterface Options {\r\n  color: string // 颜色的rgb数值。缺省值为 0xffffff。\r\n  groundColor: string // 传递的地面发出光线的颜色\r\n  intensity: number  // 光照的强度。缺省值为 1。\r\n  position: Vec // 灯光位置\r\n}\r\n\r\nclass ThreeLightHemisphere {\r\n  object: HemisphereLight | 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 HemisphereLight(this.getColorHex(options.color), this.getColorHex(options.groundColor), 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  setGroundColor(color: string) {\r\n    this.object!.groundColor = 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  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 ThreeLightHemisphere\r\n"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,oBAAqB,CAAA;AAAA;AAAA,EAIzB,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,eAAgB,CAAA,IAAA,CAAK,YAAY,OAAQ,CAAA,KAAK,CAAG,EAAA,IAAA,CAAK,WAAY,CAAA,OAAA,CAAQ,WAAW,CAAA,EAAG,QAAQ,SAAS,CAAA,CAAA;AAC3H,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,eAAe,KAAe,EAAA;AAC5B,IAAA,IAAA,CAAK,MAAQ,CAAA,WAAA,GAAc,IAAI,KAAA,CAAM,KAAK,CAAA,CAAA;AAC1C,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,OAAU,GAAA;AAhDZ,IAAA,IAAA,EAAA,CAAA;AAiDI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,UAAL,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA,CAAA;AAAA,GACd;AAAA,EAEA,MAAQ,GAAA;AApDV,IAAA,IAAA,EAAA,CAAA;AAqDI,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;;;;"}