{"version":3,"file":"buildUvs.mjs","sources":["../../../../../../src/rendering/renderers/shared/geometry/utils/buildUvs.ts"],"sourcesContent":["import type { Matrix } from '../../../../../maths/matrix/Matrix';\n\n/**\n * Takes a vertices array and a matrix and transforms the vertices based on the matrix.\n * this out put is written to the uvs array\n * @param vertices - the vertices to calculate uvs from\n * @param verticesStride - the stride of the vertice\n * @param verticesOffset - the offset of the vertices\n * @param uvs - the uvs to fill\n * @param uvsOffset - the offset of the uvs\n * @param uvsStride - the stride of the uvs\n * @param size - the size of the vertices\n * @param matrix - the matrix to apply to the uvs\n * @internal\n */\nexport function buildUvs(\n    vertices: number[],\n    verticesStride: number,\n    verticesOffset: number,\n\n    uvs: number[],\n    uvsOffset: number,\n    uvsStride: number,\n\n    size: number,\n    matrix: Matrix = null\n): void\n{\n    let index = 0;\n\n    verticesOffset *= verticesStride;\n    uvsOffset *= uvsStride;\n\n    const a = matrix.a;\n    const b = matrix.b;\n    const c = matrix.c;\n    const d = matrix.d;\n    const tx = matrix.tx;\n    const ty = matrix.ty;\n\n    while (index < size)\n    {\n        const x = vertices[verticesOffset];\n        const y = vertices[verticesOffset + 1];\n\n        uvs[uvsOffset] = (a * x) + (c * y) + tx;\n        uvs[uvsOffset + 1] = (b * x) + (d * y) + ty;\n\n        uvsOffset += uvsStride;\n\n        verticesOffset += verticesStride;\n\n        index++;\n    }\n}\n/**\n * @param uvs\n * @param uvsOffset\n * @param uvsStride\n * @param size\n * @internal\n */\nexport function buildSimpleUvs(\n    uvs: number[],\n    uvsOffset: number,\n    uvsStride: number,\n    size: number,\n)\n{\n    let index = 0;\n\n    uvsOffset *= uvsStride;\n\n    while (index < size)\n    {\n        uvs[uvsOffset] = 0;\n        uvs[uvsOffset + 1] = 0;\n\n        uvsOffset += uvsStride;\n\n        index++;\n    }\n}\n"],"names":[],"mappings":";AAeO,SAAS,QAAA,CACZ,UACA,cAAA,EACA,cAAA,EAEA,KACA,SAAA,EACA,SAAA,EAEA,IAAA,EACA,MAAA,GAAiB,IAAA,EAErB;AACI,EAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,EAAA,cAAA,IAAkB,cAAA;AAClB,EAAA,SAAA,IAAa,SAAA;AAEb,EAAA,MAAM,IAAI,MAAA,CAAO,CAAA;AACjB,EAAA,MAAM,IAAI,MAAA,CAAO,CAAA;AACjB,EAAA,MAAM,IAAI,MAAA,CAAO,CAAA;AACjB,EAAA,MAAM,IAAI,MAAA,CAAO,CAAA;AACjB,EAAA,MAAM,KAAK,MAAA,CAAO,EAAA;AAClB,EAAA,MAAM,KAAK,MAAA,CAAO,EAAA;AAElB,EAAA,OAAO,QAAQ,IAAA,EACf;AACI,IAAA,MAAM,CAAA,GAAI,SAAS,cAAc,CAAA;AACjC,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,cAAA,GAAiB,CAAC,CAAA;AAErC,IAAA,GAAA,CAAI,SAAS,CAAA,GAAK,CAAA,GAAI,CAAA,GAAM,IAAI,CAAA,GAAK,EAAA;AACrC,IAAA,GAAA,CAAI,YAAY,CAAC,CAAA,GAAK,CAAA,GAAI,CAAA,GAAM,IAAI,CAAA,GAAK,EAAA;AAEzC,IAAA,SAAA,IAAa,SAAA;AAEb,IAAA,cAAA,IAAkB,cAAA;AAElB,IAAA,KAAA,EAAA;AAAA,EACJ;AACJ;AAQO,SAAS,cAAA,CACZ,GAAA,EACA,SAAA,EACA,SAAA,EACA,IAAA,EAEJ;AACI,EAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,EAAA,SAAA,IAAa,SAAA;AAEb,EAAA,OAAO,QAAQ,IAAA,EACf;AACI,IAAA,GAAA,CAAI,SAAS,CAAA,GAAI,CAAA;AACjB,IAAA,GAAA,CAAI,SAAA,GAAY,CAAC,CAAA,GAAI,CAAA;AAErB,IAAA,SAAA,IAAa,SAAA;AAEb,IAAA,KAAA,EAAA;AAAA,EACJ;AACJ;;;;"}