{"version":3,"file":"Sprite2s.mjs","sources":["../../../src/curve/sprites/Sprite2s.ts"],"sourcesContent":["import { Matrix } from '@pixi/math';\r\nimport { Texture, TextureMatrix } from '@pixi/core';\r\nimport { Sprite } from '@pixi/sprite';\r\nimport { ProjectionSurface } from '../ProjectionSurface';\r\n\r\nexport class Sprite2s extends Sprite\r\n{\r\n    constructor(texture: Texture)\r\n    {\r\n        super(texture);\r\n        this.proj = new ProjectionSurface(this.transform);\r\n        this.pluginName = 'batch_bilinear';\r\n    }\r\n\r\n    proj: ProjectionSurface;\r\n    aTrans = new Matrix();\r\n\r\n    _calculateBounds(): void\r\n    {\r\n        this.calculateTrimmedVertices();\r\n        this._bounds.addQuad((this as any).vertexTrimmedData as any);\r\n    }\r\n\r\n    calculateVertices(): void\r\n    {\r\n        const wid = (this.transform as any)._worldID;\r\n        const tuid = (this._texture as any)._updateID;\r\n        const thisAny = this as any;\r\n\r\n        if (thisAny._transformID === wid && this._textureID === tuid)\r\n        {\r\n            return;\r\n        }\r\n\r\n        thisAny._transformID = wid;\r\n        this._textureID = tuid;\r\n\r\n        const texture = this._texture;\r\n        const vertexData = this.vertexData;\r\n        const trim = texture.trim;\r\n        const orig = texture.orig;\r\n        const anchor = this._anchor;\r\n\r\n        let w0: number;\r\n        let w1: number;\r\n        let h0: number;\r\n        let h1: number;\r\n\r\n        if (trim)\r\n        {\r\n            w1 = trim.x - (anchor._x * orig.width);\r\n            w0 = w1 + trim.width;\r\n\r\n            h1 = trim.y - (anchor._y * orig.height);\r\n            h0 = h1 + trim.height;\r\n        }\r\n        else\r\n        {\r\n            w1 = -anchor._x * orig.width;\r\n            w0 = w1 + orig.width;\r\n\r\n            h1 = -anchor._y * orig.height;\r\n            h0 = h1 + orig.height;\r\n        }\r\n\r\n        if (this.proj._surface)\r\n        {\r\n            vertexData[0] = w1;\r\n            vertexData[1] = h1;\r\n            vertexData[2] = w0;\r\n            vertexData[3] = h1;\r\n            vertexData[4] = w0;\r\n            vertexData[5] = h0;\r\n            vertexData[6] = w1;\r\n            vertexData[7] = h0;\r\n            this.proj._surface.boundsQuad(vertexData, vertexData);\r\n        }\r\n        else\r\n        {\r\n            const wt = this.transform.worldTransform;\r\n            const a = wt.a;\r\n            const b = wt.b;\r\n            const c = wt.c;\r\n            const d = wt.d;\r\n            const tx = wt.tx;\r\n            const ty = wt.ty;\r\n\r\n            vertexData[0] = (a * w1) + (c * h1) + tx;\r\n            vertexData[1] = (d * h1) + (b * w1) + ty;\r\n            vertexData[2] = (a * w0) + (c * h1) + tx;\r\n            vertexData[3] = (d * h1) + (b * w0) + ty;\r\n            vertexData[4] = (a * w0) + (c * h0) + tx;\r\n            vertexData[5] = (d * h0) + (b * w0) + ty;\r\n            vertexData[6] = (a * w1) + (c * h0) + tx;\r\n            vertexData[7] = (d * h0) + (b * w1) + ty;\r\n            if (this.proj._activeProjection)\r\n            {\r\n                this.proj._activeProjection.surface.boundsQuad(vertexData, vertexData);\r\n            }\r\n        }\r\n\r\n        if (!texture.uvMatrix)\r\n        {\r\n            texture.uvMatrix = new TextureMatrix(texture);\r\n        }\r\n        texture.uvMatrix.update();\r\n\r\n        const aTrans = this.aTrans;\r\n\r\n        aTrans.set(orig.width, 0, 0, orig.height, w1, h1);\r\n        if (this.proj._surface === null)\r\n        {\r\n            aTrans.prepend(this.transform.worldTransform);\r\n        }\r\n        aTrans.invert();\r\n        aTrans.prepend((texture.uvMatrix as any).mapCoord);\r\n    }\r\n\r\n    calculateTrimmedVertices(): void\r\n    {\r\n        const wid = (this.transform as any)._worldID;\r\n        const tuid = (this._texture as any)._updateID;\r\n        const thisAny = this as any;\r\n\r\n        if (!thisAny.vertexTrimmedData)\r\n        {\r\n            thisAny.vertexTrimmedData = new Float32Array(8);\r\n        }\r\n        else if (thisAny._transformTrimmedID === wid && this._textureTrimmedID === tuid)\r\n        {\r\n            return;\r\n        }\r\n\r\n        thisAny._transformTrimmedID = wid;\r\n        this._textureTrimmedID = tuid;\r\n\r\n        // lets do some special trim code!\r\n        const texture = this._texture;\r\n        const vertexData = thisAny.vertexTrimmedData;\r\n        const orig = texture.orig;\r\n        const anchor = this._anchor;\r\n\r\n        // lets calculate the new untrimmed bounds..\r\n\r\n        const w1 = -anchor._x * orig.width;\r\n        const w0 = w1 + orig.width;\r\n\r\n        const h1 = -anchor._y * orig.height;\r\n        const h0 = h1 + orig.height;\r\n\r\n        // TODO: take rotations into account! form temporary bounds\r\n\r\n        if (this.proj._surface)\r\n        {\r\n            vertexData[0] = w1;\r\n            vertexData[1] = h1;\r\n            vertexData[2] = w0;\r\n            vertexData[3] = h1;\r\n            vertexData[4] = w0;\r\n            vertexData[5] = h0;\r\n            vertexData[6] = w1;\r\n            vertexData[7] = h0;\r\n            this.proj._surface.boundsQuad(vertexData, vertexData, this.transform.worldTransform);\r\n        }\r\n        else\r\n        {\r\n            const wt = this.transform.worldTransform;\r\n            const a = wt.a;\r\n            const b = wt.b;\r\n            const c = wt.c;\r\n            const d = wt.d;\r\n            const tx = wt.tx;\r\n            const ty = wt.ty;\r\n\r\n            vertexData[0] = (a * w1) + (c * h1) + tx;\r\n            vertexData[1] = (d * h1) + (b * w1) + ty;\r\n            vertexData[2] = (a * w0) + (c * h1) + tx;\r\n            vertexData[3] = (d * h1) + (b * w0) + ty;\r\n            vertexData[4] = (a * w0) + (c * h0) + tx;\r\n            vertexData[5] = (d * h0) + (b * w0) + ty;\r\n            vertexData[6] = (a * w1) + (c * h0) + tx;\r\n            vertexData[7] = (d * h0) + (b * w1) + ty;\r\n            if (this.proj._activeProjection)\r\n            {\r\n                this.proj._activeProjection.surface.boundsQuad(vertexData, vertexData,\r\n                    this.proj._activeProjection.legacy.worldTransform);\r\n            }\r\n        }\r\n    }\r\n\r\n    get worldTransform(): Matrix\r\n    {\r\n        return this.proj as any;\r\n    }\r\n}\r\n"],"names":[],"mappings":"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"}