UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

1 lines 7.27 kB
{"version":3,"file":"TextureUvs.mjs","sources":["../../../../../src/rendering/renderers/shared/texture/TextureUvs.ts"],"sourcesContent":["import { groupD8 } from '../../../../maths/matrix/groupD8';\n\nimport type { Size } from '../../../../maths/misc/Size';\nimport type { Rectangle } from '../../../../maths/shapes/Rectangle';\n\n/**\n * Stores a texture's frame in UV coordinates, in\n * which everything lies in the rectangle `[(0,0), (1,0),\n * (1,1), (0,1)]`.\n *\n * | Corner | Coordinates |\n * |--------------|-------------|\n * | Top-Left | `(x0,y0)` |\n * | Top-Right | `(x1,y1)` |\n * | Bottom-Right | `(x2,y2)` |\n * | Bottom-Left | `(x3,y3)` |\n * @protected\n * @category rendering\n * @advanced\n */\nexport class TextureUvs\n{\n /** X-component of top-left corner `(x0,y0)`. */\n public x0: number;\n\n /** Y-component of top-left corner `(x0,y0)`. */\n public y0: number;\n\n /** X-component of top-right corner `(x1,y1)`. */\n public x1: number;\n\n /** Y-component of top-right corner `(x1,y1)`. */\n public y1: number;\n\n /** X-component of bottom-right corner `(x2,y2)`. */\n public x2: number;\n\n /** Y-component of bottom-right corner `(x2,y2)`. */\n public y2: number;\n\n /** X-component of bottom-left corner `(x3,y3)`. */\n public x3: number;\n\n /** Y-component of bottom-right corner `(x3,y3)`. */\n public y3: number;\n public uvsFloat32: Float32Array;\n\n constructor()\n {\n this.x0 = 0;\n this.y0 = 0;\n this.x1 = 1;\n this.y1 = 0;\n this.x2 = 1;\n this.y2 = 1;\n this.x3 = 0;\n this.y3 = 1;\n\n this.uvsFloat32 = new Float32Array(8);\n }\n\n /**\n * Sets the texture Uvs based on the given frame information.\n * @protected\n * @param frame - The frame of the texture\n * @param baseFrame - The base frame of the texture\n * @param rotate - Rotation of frame, see {@link groupD8}\n */\n public set(frame: Rectangle, baseFrame: Size, rotate: number): void\n {\n const tw = baseFrame.width;\n const th = baseFrame.height;\n\n if (rotate)\n {\n // width and height div 2 div baseFrame size\n const w2 = frame.width / 2 / tw;\n const h2 = frame.height / 2 / th;\n\n // coordinates of center\n const cX = (frame.x / tw) + w2;\n const cY = (frame.y / th) + h2;\n\n rotate = groupD8.add(rotate, groupD8.NW); // NW is top-left corner\n this.x0 = cX + (w2 * groupD8.uX(rotate));\n this.y0 = cY + (h2 * groupD8.uY(rotate));\n\n rotate = groupD8.add(rotate, 2); // rotate 90 degrees clockwise\n this.x1 = cX + (w2 * groupD8.uX(rotate));\n this.y1 = cY + (h2 * groupD8.uY(rotate));\n\n rotate = groupD8.add(rotate, 2);\n this.x2 = cX + (w2 * groupD8.uX(rotate));\n this.y2 = cY + (h2 * groupD8.uY(rotate));\n\n rotate = groupD8.add(rotate, 2);\n this.x3 = cX + (w2 * groupD8.uX(rotate));\n this.y3 = cY + (h2 * groupD8.uY(rotate));\n }\n else\n {\n this.x0 = frame.x / tw;\n this.y0 = frame.y / th;\n\n this.x1 = (frame.x + frame.width) / tw;\n this.y1 = frame.y / th;\n\n this.x2 = (frame.x + frame.width) / tw;\n this.y2 = (frame.y + frame.height) / th;\n\n this.x3 = frame.x / tw;\n this.y3 = (frame.y + frame.height) / th;\n }\n\n this.uvsFloat32[0] = this.x0;\n this.uvsFloat32[1] = this.y0;\n this.uvsFloat32[2] = this.x1;\n this.uvsFloat32[3] = this.y1;\n this.uvsFloat32[4] = this.x2;\n this.uvsFloat32[5] = this.y2;\n this.uvsFloat32[6] = this.x3;\n this.uvsFloat32[7] = this.y3;\n }\n\n // #if _DEBUG\n public toString(): string\n {\n return `[pixi.js/core:TextureUvs `\n + `x0=${this.x0} y0=${this.y0} `\n + `x1=${this.x1} y1=${this.y1} x2=${this.x2} `\n + `y2=${this.y2} x3=${this.x3} y3=${this.y3}`\n + `]`;\n }\n // #endif\n}\n"],"names":[],"mappings":"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"}