{"version":3,"file":"triangulateWithHoles.mjs","sources":["../../../../../src/scene/graphics/shared/utils/triangulateWithHoles.ts"],"sourcesContent":["import { default as earcut } from 'earcut';\n\nexport function triangulateWithHoles(\n    points: number[],\n    holes: number[],\n    vertices: number[],\n    verticesStride: number,\n    verticesOffset: number,\n\n    indices: number[],\n    indicesOffset: number\n)\n{\n    const triangles = earcut(points, holes, 2);\n\n    if (!triangles)\n    {\n        return;\n    }\n\n    for (let i = 0; i < triangles.length; i += 3)\n    {\n        indices[indicesOffset++] = (triangles[i] + verticesOffset);\n        indices[indicesOffset++] = (triangles[i + 1] + verticesOffset);\n        indices[indicesOffset++] = (triangles[i + 2] + verticesOffset);\n    }\n\n    let index = verticesOffset * verticesStride;\n\n    for (let i = 0; i < points.length; i += 2)\n    {\n        vertices[index] = points[i];\n        vertices[index + 1] = points[i + 1];\n\n        index += verticesStride;\n    }\n}\n\n"],"names":[],"mappings":";;;AAEO,SAAS,qBACZ,MACA,EAAA,KAAA,EACA,UACA,cACA,EAAA,cAAA,EAEA,SACA,aAEJ,EAAA;AACI,EAAA,MAAM,SAAY,GAAA,MAAA,CAAO,MAAQ,EAAA,KAAA,EAAO,CAAC,CAAA,CAAA;AAEzC,EAAA,IAAI,CAAC,SACL,EAAA;AACI,IAAA,OAAA;AAAA,GACJ;AAEA,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,SAAU,CAAA,MAAA,EAAQ,KAAK,CAC3C,EAAA;AACI,IAAA,OAAA,CAAQ,aAAe,EAAA,CAAA,GAAK,SAAU,CAAA,CAAC,CAAI,GAAA,cAAA,CAAA;AAC3C,IAAA,OAAA,CAAQ,aAAe,EAAA,CAAA,GAAK,SAAU,CAAA,CAAA,GAAI,CAAC,CAAI,GAAA,cAAA,CAAA;AAC/C,IAAA,OAAA,CAAQ,aAAe,EAAA,CAAA,GAAK,SAAU,CAAA,CAAA,GAAI,CAAC,CAAI,GAAA,cAAA,CAAA;AAAA,GACnD;AAEA,EAAA,IAAI,QAAQ,cAAiB,GAAA,cAAA,CAAA;AAE7B,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,MAAO,CAAA,MAAA,EAAQ,KAAK,CACxC,EAAA;AACI,IAAS,QAAA,CAAA,KAAK,CAAI,GAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAC1B,IAAA,QAAA,CAAS,KAAQ,GAAA,CAAC,CAAI,GAAA,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAElC,IAAS,KAAA,IAAA,cAAA,CAAA;AAAA,GACb;AACJ;;;;"}