{"version":3,"file":"DirectionalLight.mjs","sources":["../../../src/lights/directionalLight/DirectionalLight.ts"],"sourcesContent":["import { Light } from '../light/Light';\nimport { Point, Renderer } from '@pixi/core';\nimport { DisplayObject } from '@pixi/display';\nimport { DirectionalLightShader } from './DirectionalLightShader';\n\n/**\n * Directional light is drawn using a full-screen quad.\n * @memberof PIXI.lights\n */\nexport class DirectionalLight extends Light\n{\n    target: DisplayObject | Point;\n\n    /**\n     * @param {number} [color=0xFFFFFF] - The color of the light.\n     * @param {number} [brightness=1] - The intensity of the light.\n     * @param {PIXI.DisplayObject|PIXI.Point} [target] - The object in the scene to target.\n     */\n    constructor(color = 0xFFFFFF, brightness = 1, target: DisplayObject | Point)\n    {\n        super(color, brightness, new DirectionalLightShader());\n\n        this.target = target;\n    }\n\n    /**\n     * Sync shader\n     * @param {PIXI.Renderer} renderer - Renderer\n     */\n    override syncShader(renderer: Renderer): void\n    {\n        super.syncShader(renderer);\n\n        const shader = this.material;\n\n        const vec = shader.uniforms.uLightDirection;\n        const wt = this.worldTransform;\n        const twt = (this.target as any).worldTransform;\n\n        let tx: number;\n        let ty: number;\n\n        if (twt)\n        {\n            tx = twt.tx;\n            ty = twt.ty;\n        }\n        else\n        {\n            tx = this.target.x;\n            ty = this.target.y;\n        }\n\n        // calculate direction from this light to the target\n        vec.x = wt.tx - tx;\n        vec.y = wt.ty - ty;\n\n        // normalize\n        const len = Math.sqrt((vec.x * vec.x) + (vec.y * vec.y));\n\n        vec.x /= len;\n        vec.y /= len;\n    }\n}\n"],"names":[],"mappings":";;;AASO,MAAM,yBAAyB,KACtC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQI,WAAY,CAAA,KAAA,GAAQ,QAAU,EAAA,UAAA,GAAa,GAAG,MAC9C,EAAA;AACI,IAAA,KAAA,CAAM,KAAO,EAAA,UAAA,EAAY,IAAI,sBAAA,EAAwB,CAAA,CAAA;AAErD,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMS,WAAW,QACpB,EAAA;AACI,IAAA,KAAA,CAAM,WAAW,QAAQ,CAAA,CAAA;AAEzB,IAAA,MAAM,SAAS,IAAK,CAAA,QAAA,CAAA;AAEpB,IAAM,MAAA,GAAA,GAAM,OAAO,QAAS,CAAA,eAAA,CAAA;AAC5B,IAAA,MAAM,KAAK,IAAK,CAAA,cAAA,CAAA;AAChB,IAAM,MAAA,GAAA,GAAO,KAAK,MAAe,CAAA,cAAA,CAAA;AAEjC,IAAI,IAAA,EAAA,CAAA;AACJ,IAAI,IAAA,EAAA,CAAA;AAEJ,IAAA,IAAI,GACJ,EAAA;AACI,MAAA,EAAA,GAAK,GAAI,CAAA,EAAA,CAAA;AACT,MAAA,EAAA,GAAK,GAAI,CAAA,EAAA,CAAA;AAAA,KAGb,MAAA;AACI,MAAA,EAAA,GAAK,KAAK,MAAO,CAAA,CAAA,CAAA;AACjB,MAAA,EAAA,GAAK,KAAK,MAAO,CAAA,CAAA,CAAA;AAAA,KACrB;AAGA,IAAI,GAAA,CAAA,CAAA,GAAI,GAAG,EAAK,GAAA,EAAA,CAAA;AAChB,IAAI,GAAA,CAAA,CAAA,GAAI,GAAG,EAAK,GAAA,EAAA,CAAA;AAGhB,IAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAM,GAAI,CAAA,CAAA,GAAI,IAAI,CAAM,GAAA,GAAA,CAAI,CAAI,GAAA,GAAA,CAAI,CAAE,CAAA,CAAA;AAEvD,IAAA,GAAA,CAAI,CAAK,IAAA,GAAA,CAAA;AACT,IAAA,GAAA,CAAI,CAAK,IAAA,GAAA,CAAA;AAAA,GACb;AACJ;;;;"}