{"version":3,"file":"ScissorMask.mjs","sources":["../../../../src/rendering/mask/scissor/ScissorMask.ts"],"sourcesContent":["import { addMaskBounds } from '../utils/addMaskBounds';\nimport { addMaskLocalBounds } from '../utils/addMaskLocalBounds';\n\nimport type { Point } from '../../../maths/point/Point';\nimport type { Bounds } from '../../../scene/container/bounds/Bounds';\nimport type { Container } from '../../../scene/container/Container';\nimport type { Effect } from '../../../scene/container/Effect';\n\n/**\n * ScissorMask is an effect that applies a scissor mask to a container.\n * It restricts rendering to the area defined by the mask.\n * The mask is a Container that defines the area to be rendered.\n * The mask must be a Container that is not renderable or measurable.\n * This effect is used to create clipping regions in the rendering process.\n * @category rendering\n * @advanced\n */\nexport class ScissorMask implements Effect\n{\n    public priority = 0;\n    public mask: Container;\n    public pipe = 'scissorMask';\n\n    constructor(mask: Container)\n    {\n        this.mask = mask;\n\n        this.mask.renderable = false;\n        this.mask.measurable = false;\n    }\n\n    public addBounds(bounds: Bounds, skipUpdateTransform?: boolean): void\n    {\n        addMaskBounds(this.mask, bounds, skipUpdateTransform);\n    }\n\n    public addLocalBounds(bounds: Bounds, localRoot: Container): void\n    {\n        addMaskLocalBounds(this.mask, bounds, localRoot);\n    }\n\n    public containsPoint(point: Point, hitTestFn: (container: Container, point: Point) => boolean): boolean\n    {\n        const mask = this.mask as any;\n\n        // if the point is in the mask, yay!\n        return hitTestFn(mask, point);\n    }\n\n    public reset()\n    {\n        if (this.mask === null) return;\n        this.mask.measurable = true;\n        this.mask = null;\n    }\n\n    public destroy(): void\n    {\n        this.reset();\n    }\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,WAAA,CACb;AAAA,EAKI,YAAY,IAAA,EACZ;AALA,IAAA,IAAA,CAAO,QAAA,GAAW,CAAA;AAElB,IAAA,IAAA,CAAO,IAAA,GAAO,aAAA;AAIV,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAEZ,IAAA,IAAA,CAAK,KAAK,UAAA,GAAa,KAAA;AACvB,IAAA,IAAA,CAAK,KAAK,UAAA,GAAa,KAAA;AAAA,EAC3B;AAAA,EAEO,SAAA,CAAU,QAAgB,mBAAA,EACjC;AACI,IAAA,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,mBAAmB,CAAA;AAAA,EACxD;AAAA,EAEO,cAAA,CAAe,QAAgB,SAAA,EACtC;AACI,IAAA,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,SAAS,CAAA;AAAA,EACnD;AAAA,EAEO,aAAA,CAAc,OAAc,SAAA,EACnC;AACI,IAAA,MAAM,OAAO,IAAA,CAAK,IAAA;AAGlB,IAAA,OAAO,SAAA,CAAU,MAAM,KAAK,CAAA;AAAA,EAChC;AAAA,EAEO,KAAA,GACP;AACI,IAAA,IAAI,IAAA,CAAK,SAAS,IAAA,EAAM;AACxB,IAAA,IAAA,CAAK,KAAK,UAAA,GAAa,IAAA;AACvB,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EAChB;AAAA,EAEO,OAAA,GACP;AACI,IAAA,IAAA,CAAK,KAAA,EAAM;AAAA,EACf;AACJ;;;;"}