{"version":3,"file":"convert.mjs","sources":["../../../src/proj3d/sprites/convert.ts"],"sourcesContent":["import { Container3d, container3dWorldTransform } from '../Container3d';\r\nimport { Projection3d } from '../Projection3d';\r\nimport { Mesh3d2d } from '../mesh/Mesh3d2d';\r\nimport { MeshMaterial } from '@pixi/mesh';\r\nimport { Mesh2d } from '../../proj2d';\r\nimport { Program } from '@pixi/core';\r\nimport { SimpleMesh, SimpleRope } from '@pixi/mesh-extras';\r\nimport { Container } from '@pixi/display';\r\nimport { Sprite } from '@pixi/sprite';\r\nimport { Sprite3d } from './Sprite3d';\r\n\r\nconst containerProps: any = {\r\n    worldTransform: {\r\n        get: container3dWorldTransform,\r\n        enumerable: true,\r\n        configurable: true\r\n    },\r\n    position3d: {\r\n        get() { return this.proj.position; },\r\n        set(value: any) { this.proj.position.copy(value); }\r\n    },\r\n    scale3d: {\r\n        get() { return this.proj.scale; },\r\n        set(value: any) { this.proj.scale.copy(value); }\r\n    },\r\n    pivot3d: {\r\n        get() { return this.proj.pivot; },\r\n        set(value: any) { this.proj.pivot.copy(value); }\r\n    },\r\n    euler: {\r\n        get() { return this.proj.euler; },\r\n        set(value: any) { this.proj.euler.copy(value); }\r\n    }\r\n};\r\n\r\nfunction convertTo3d()\r\n{\r\n    if (this.proj) return;\r\n    this.proj = new Projection3d(this.transform);\r\n    this.toLocal = Container3d.prototype.toLocal;\r\n    this.isFrontFace = Container3d.prototype.isFrontFace;\r\n    this.getDepth = Container3d.prototype.getDepth;\r\n    Object.defineProperties(this, containerProps);\r\n}\r\n\r\nContainer.prototype.convertTo3d = convertTo3d;\r\n\r\nSprite.prototype.convertTo3d = function spriteConvertTo3d()\r\n{\r\n    if (this.proj) return;\r\n    this.calculateVertices = Sprite3d.prototype.calculateVertices;\r\n    this.calculateTrimmedVertices = Sprite3d.prototype.calculateTrimmedVertices;\r\n    this._calculateBounds = Sprite3d.prototype._calculateBounds;\r\n    this.containsPoint = Sprite3d.prototype.containsPoint;\r\n    this.pluginName = 'batch2d';\r\n    convertTo3d.call(this);\r\n};\r\n\r\nContainer.prototype.convertSubtreeTo3d = function convertSubtreeTo3d()\r\n{\r\n    this.convertTo3d();\r\n    for (let i = 0; i < this.children.length; i++)\r\n    {\r\n        this.children[i].convertSubtreeTo3d();\r\n    }\r\n};\r\n\r\nSimpleMesh.prototype.convertTo3d\r\n    = SimpleRope.prototype.convertTo3d\r\n    = function meshConvert3d()\r\n        {\r\n            if (this.proj) return;\r\n            this.calculateVertices = Mesh3d2d.prototype.calculateVertices;\r\n            this._renderDefault = (Mesh3d2d.prototype as any)._renderDefault;\r\n            if (this.material.pluginName !== 'batch2d')\r\n            {\r\n                this.material = new MeshMaterial(this.material.texture, {\r\n                    program: Program.from(Mesh2d.defaultVertexShader, Mesh2d.defaultFragmentShader),\r\n                    pluginName: 'batch2d'\r\n                });\r\n            }\r\n            convertTo3d.call(this);\r\n        };\r\n"],"names":[],"mappings":"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"}