{"version":3,"file":"buildRectangle.mjs","sources":["../../../../../src/scene/graphics/shared/buildCommands/buildRectangle.ts"],"sourcesContent":["import { ExtensionType } from '../../../../extensions/Extensions';\n\nimport type { Rectangle } from '../../../../maths/shapes/Rectangle';\nimport type { ShapeBuildCommand } from './ShapeBuildCommand';\n\n/**\n * Builds a rectangle to draw\n *\n * Ignored from docs since it is not directly exposed.\n * @ignore\n * @private\n */\nexport const buildRectangle: ShapeBuildCommand<Rectangle> = {\n    extension: {\n        type: ExtensionType.ShapeBuilder,\n        name: 'rectangle',\n    },\n\n    build(shape: Rectangle, points: number[]): boolean\n    {\n        const rectData = shape;\n        const x = rectData.x;\n        const y = rectData.y;\n        const width = rectData.width;\n        const height = rectData.height;\n\n        if (!(width > 0 && height > 0))\n        {\n            return false;\n        }\n\n        points[0] = x;\n        points[1] = y;\n        points[2] = x + width;\n        points[3] = y;\n        points[4] = x + width;\n        points[5] = y + height;\n        points[6] = x;\n        points[7] = y + height;\n\n        return true;\n    },\n\n    triangulate(\n        points: number[],\n\n        vertices: number[],\n        verticesStride: number,\n        verticesOffset: number,\n\n        indices: number[],\n        indicesOffset: number\n    )\n    {\n        let count = 0;\n\n        verticesOffset *= verticesStride;\n\n        vertices[verticesOffset + count] = points[0];\n        vertices[verticesOffset + count + 1] = points[1];\n\n        count += verticesStride;\n\n        vertices[verticesOffset + count] = points[2];\n        vertices[verticesOffset + count + 1] = points[3];\n\n        count += verticesStride;\n\n        vertices[verticesOffset + count] = points[6];\n        vertices[verticesOffset + count + 1] = points[7];\n\n        count += verticesStride;\n\n        vertices[verticesOffset + count] = points[4];\n        vertices[verticesOffset + count + 1] = points[5];\n\n        count += verticesStride;\n\n        const verticesIndex = verticesOffset / verticesStride;\n\n        // triangle 1\n        indices[indicesOffset++] = verticesIndex;\n        indices[indicesOffset++] = verticesIndex + 1;\n        indices[indicesOffset++] = verticesIndex + 2;\n\n        // triangle 2\n        indices[indicesOffset++] = verticesIndex + 1;\n        indices[indicesOffset++] = verticesIndex + 3;\n        indices[indicesOffset++] = verticesIndex + 2;\n    },\n};\n"],"names":[],"mappings":";;;AAYO,MAAM,cAAA,GAA+C;AAAA,EACxD,SAAA,EAAW;AAAA,IACP,MAAM,aAAA,CAAc,YAAA;AAAA,IACpB,IAAA,EAAM;AAAA,GACV;AAAA,EAEA,KAAA,CAAM,OAAkB,MAAA,EACxB;AACI,IAAA,MAAM,QAAA,GAAW,KAAA;AACjB,IAAA,MAAM,IAAI,QAAA,CAAS,CAAA;AACnB,IAAA,MAAM,IAAI,QAAA,CAAS,CAAA;AACnB,IAAA,MAAM,QAAQ,QAAA,CAAS,KAAA;AACvB,IAAA,MAAM,SAAS,QAAA,CAAS,MAAA;AAExB,IAAA,IAAI,EAAE,KAAA,GAAQ,CAAA,IAAK,MAAA,GAAS,CAAA,CAAA,EAC5B;AACI,MAAA,OAAO,KAAA;AAAA,IACX;AAEA,IAAA,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA;AACZ,IAAA,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA;AACZ,IAAA,MAAA,CAAO,CAAC,IAAI,CAAA,GAAI,KAAA;AAChB,IAAA,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA;AACZ,IAAA,MAAA,CAAO,CAAC,IAAI,CAAA,GAAI,KAAA;AAChB,IAAA,MAAA,CAAO,CAAC,IAAI,CAAA,GAAI,MAAA;AAChB,IAAA,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA;AACZ,IAAA,MAAA,CAAO,CAAC,IAAI,CAAA,GAAI,MAAA;AAEhB,IAAA,OAAO,IAAA;AAAA,EACX,CAAA;AAAA,EAEA,YACI,MAAA,EAEA,QAAA,EACA,cAAA,EACA,cAAA,EAEA,SACA,aAAA,EAEJ;AACI,IAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,IAAA,cAAA,IAAkB,cAAA;AAElB,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAK,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA;AAC3C,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAA,GAAQ,CAAC,CAAA,GAAI,OAAO,CAAC,CAAA;AAE/C,IAAA,KAAA,IAAS,cAAA;AAET,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAK,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA;AAC3C,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAA,GAAQ,CAAC,CAAA,GAAI,OAAO,CAAC,CAAA;AAE/C,IAAA,KAAA,IAAS,cAAA;AAET,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAK,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA;AAC3C,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAA,GAAQ,CAAC,CAAA,GAAI,OAAO,CAAC,CAAA;AAE/C,IAAA,KAAA,IAAS,cAAA;AAET,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAK,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA;AAC3C,IAAA,QAAA,CAAS,cAAA,GAAiB,KAAA,GAAQ,CAAC,CAAA,GAAI,OAAO,CAAC,CAAA;AAE/C,IAAA,KAAA,IAAS,cAAA;AAET,IAAA,MAAM,gBAAgB,cAAA,GAAiB,cAAA;AAGvC,IAAA,OAAA,CAAQ,eAAe,CAAA,GAAI,aAAA;AAC3B,IAAA,OAAA,CAAQ,aAAA,EAAe,IAAI,aAAA,GAAgB,CAAA;AAC3C,IAAA,OAAA,CAAQ,aAAA,EAAe,IAAI,aAAA,GAAgB,CAAA;AAG3C,IAAA,OAAA,CAAQ,aAAA,EAAe,IAAI,aAAA,GAAgB,CAAA;AAC3C,IAAA,OAAA,CAAQ,aAAA,EAAe,IAAI,aAAA,GAAgB,CAAA;AAC3C,IAAA,OAAA,CAAQ,aAAA,EAAe,IAAI,aAAA,GAAgB,CAAA;AAAA,EAC/C;AACJ;;;;"}