{"version":3,"file":"Container2d.mjs","sources":["../../src/proj2d/Container2d.ts"],"sourcesContent":["import { Projection2d } from './Projection2d';\r\nimport { Container, DisplayObject } from '@pixi/display';\r\nimport { IPointData, Matrix, Point } from '@pixi/math';\r\nimport { TRANSFORM_STEP } from '../base';\r\n\r\nexport function container2dWorldTransform(): Matrix\r\n{\r\n    return this.proj.affine ? this.transform.worldTransform : this.proj.world as any;\r\n}\r\n\r\nexport class Container2d extends Container\r\n{\r\n    constructor()\r\n    {\r\n        super();\r\n        this.proj = new Projection2d(this.transform);\r\n    }\r\n\r\n    proj: Projection2d;\r\n\r\n    toLocal<P extends IPointData = Point>(position: IPointData, from?: DisplayObject, point?: P, skipUpdate?: boolean,\r\n        step = TRANSFORM_STEP.ALL): P\r\n    {\r\n        if (from)\r\n        {\r\n            position = from.toGlobal(position, point, skipUpdate);\r\n        }\r\n\r\n        if (!skipUpdate)\r\n        {\r\n            this._recursivePostUpdateTransform();\r\n        }\r\n\r\n        if (step >= TRANSFORM_STEP.PROJ)\r\n        {\r\n            if (!skipUpdate)\r\n            {\r\n                this.displayObjectUpdateTransform();\r\n            }\r\n            if (this.proj.affine)\r\n            {\r\n                return this.transform.worldTransform.applyInverse(position, point) as any;\r\n            }\r\n\r\n            return this.proj.world.applyInverse(position, point) as any;\r\n        }\r\n\r\n        if (this.parent)\r\n        {\r\n            point = this.parent.worldTransform.applyInverse(position, point) as any;\r\n        }\r\n        else\r\n        {\r\n            point.x = position.x;\r\n            point.y = position.y;\r\n        }\r\n        if (step === TRANSFORM_STEP.NONE)\r\n        {\r\n            return point;\r\n        }\r\n\r\n        return this.transform.localTransform.applyInverse(point, point) as any;\r\n    }\r\n\r\n    get worldTransform(): Matrix\r\n    {\r\n        return this.proj.affine ? this.transform.worldTransform : this.proj.world as any;\r\n    }\r\n}\r\n\r\nexport const container2dToLocal = Container2d.prototype.toLocal;\r\n"],"names":[],"mappings":";;;;;AAKO,SAAS,yBAChB,GAAA;AACI,EAAA,OAAO,KAAK,IAAK,CAAA,MAAA,GAAS,KAAK,SAAU,CAAA,cAAA,GAAiB,KAAK,IAAK,CAAA,KAAA,CAAA;AACxE,CAAA;AAEO,MAAM,oBAAoB,SACjC,CAAA;AAAA,EACI,WACA,GAAA;AACI,IAAM,KAAA,EAAA,CAAA;AACN,IAAA,IAAA,CAAK,IAAO,GAAA,IAAI,YAAa,CAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AAAA,GAC/C;AAAA,EAIA,QAAsC,QAAsB,EAAA,IAAA,EAAsB,OAAW,UACzF,EAAA,IAAA,GAAO,eAAe,GAC1B,EAAA;AACI,IAAA,IAAI,IACJ,EAAA;AACI,MAAA,QAAA,GAAW,IAAK,CAAA,QAAA,CAAS,QAAU,EAAA,KAAA,EAAO,UAAU,CAAA,CAAA;AAAA,KACxD;AAEA,IAAA,IAAI,CAAC,UACL,EAAA;AACI,MAAA,IAAA,CAAK,6BAA8B,EAAA,CAAA;AAAA,KACvC;AAEA,IAAI,IAAA,IAAA,IAAQ,eAAe,IAC3B,EAAA;AACI,MAAA,IAAI,CAAC,UACL,EAAA;AACI,QAAA,IAAA,CAAK,4BAA6B,EAAA,CAAA;AAAA,OACtC;AACA,MAAI,IAAA,IAAA,CAAK,KAAK,MACd,EAAA;AACI,QAAA,OAAO,IAAK,CAAA,SAAA,CAAU,cAAe,CAAA,YAAA,CAAa,UAAU,KAAK,CAAA,CAAA;AAAA,OACrE;AAEA,MAAA,OAAO,IAAK,CAAA,IAAA,CAAK,KAAM,CAAA,YAAA,CAAa,UAAU,KAAK,CAAA,CAAA;AAAA,KACvD;AAEA,IAAA,IAAI,KAAK,MACT,EAAA;AACI,MAAA,KAAA,GAAQ,IAAK,CAAA,MAAA,CAAO,cAAe,CAAA,YAAA,CAAa,UAAU,KAAK,CAAA,CAAA;AAAA,KAGnE,MAAA;AACI,MAAA,KAAA,CAAM,IAAI,QAAS,CAAA,CAAA,CAAA;AACnB,MAAA,KAAA,CAAM,IAAI,QAAS,CAAA,CAAA,CAAA;AAAA,KACvB;AACA,IAAI,IAAA,IAAA,KAAS,eAAe,IAC5B,EAAA;AACI,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AAEA,IAAA,OAAO,IAAK,CAAA,SAAA,CAAU,cAAe,CAAA,YAAA,CAAa,OAAO,KAAK,CAAA,CAAA;AAAA,GAClE;AAAA,EAEA,IAAI,cACJ,GAAA;AACI,IAAA,OAAO,KAAK,IAAK,CAAA,MAAA,GAAS,KAAK,SAAU,CAAA,cAAA,GAAiB,KAAK,IAAK,CAAA,KAAA,CAAA;AAAA,GACxE;AACJ,CAAA;AAEa,MAAA,kBAAA,GAAqB,YAAY,SAAU,CAAA;;;;"}