{"version":3,"file":"PlaneGeometry.mjs","sources":["../../src/geometry/PlaneGeometry.ts"],"sourcesContent":["import { MeshGeometry } from 'pixijs/mesh';\n\n/**\n * @memberof PIXI\n */\nexport class PlaneGeometry extends MeshGeometry\n{\n    public segWidth: number;\n    public segHeight: number;\n    public width: number;\n    public height: number;\n\n    /**\n     * @param width - The width of the plane.\n     * @param height - The height of the plane.\n     * @param segWidth - Number of horizontal segments.\n     * @param segHeight - Number of vertical segments.\n     */\n    constructor(width = 100, height = 100, segWidth = 10, segHeight = 10)\n    {\n        super();\n\n        this.segWidth = segWidth;\n        this.segHeight = segHeight;\n\n        this.width = width;\n        this.height = height;\n\n        this.build();\n    }\n\n    /**\n     * Refreshes plane coordinates\n     * @private\n     */\n    build(): void\n    {\n        const total = this.segWidth * this.segHeight;\n        const verts = [];\n        const uvs = [];\n        const indices = [];\n\n        const segmentsX = this.segWidth - 1;\n        const segmentsY = this.segHeight - 1;\n\n        const sizeX = (this.width) / segmentsX;\n        const sizeY = (this.height) / segmentsY;\n\n        for (let i = 0; i < total; i++)\n        {\n            const x = (i % this.segWidth);\n            const y = ((i / this.segWidth) | 0);\n\n            verts.push(x * sizeX, y * sizeY);\n            uvs.push(x / segmentsX, y / segmentsY);\n        }\n\n        const totalSub = segmentsX * segmentsY;\n\n        for (let i = 0; i < totalSub; i++)\n        {\n            const xpos = i % segmentsX;\n            const ypos = (i / segmentsX) | 0;\n\n            const value = (ypos * this.segWidth) + xpos;\n            const value2 = (ypos * this.segWidth) + xpos + 1;\n            const value3 = ((ypos + 1) * this.segWidth) + xpos;\n            const value4 = ((ypos + 1) * this.segWidth) + xpos + 1;\n\n            indices.push(value, value2, value3,\n                value2, value4, value3);\n        }\n\n        this.buffers[0].data = new Float32Array(verts);\n        this.buffers[1].data = new Float32Array(uvs);\n        this.indexBuffer.data = new Uint16Array(indices);\n\n        // ensure that the changes are uploaded\n        this.buffers[0].update();\n        this.buffers[1].update();\n        this.indexBuffer.update();\n    }\n}\n"],"names":[],"mappings":"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"}