{"version":3,"file":"buildArc.mjs","sources":["../../../../../src/scene/graphics/shared/buildCommands/buildArc.ts"],"sourcesContent":["/**\n * @param points\n * @param x\n * @param y\n * @param radius\n * @param start\n * @param end\n * @param clockwise\n * @param steps\n * @internal\n */\nexport function buildArc(\n    points: number[],\n    x: number, y: number,\n    radius: number,\n    start: number,\n    end: number,\n    clockwise: boolean,\n    steps?: number\n)\n{\n    // determine distance between the two angles\n    // ...probably a nicer way of writing this\n    let dist = Math.abs(start - end);\n\n    if (!clockwise && start > end)\n    {\n        dist = (2 * Math.PI) - dist;\n    }\n    else if (clockwise && end > start)\n    {\n        dist = (2 * Math.PI) - dist;\n    }\n\n    // approximate the # of steps using the cube root of the radius\n\n    steps ||= Math.max(6, Math.floor(6 * Math.pow(radius, 1 / 3) * (dist / (Math.PI))));\n\n    // ensure we have at least 3 steps..\n    steps = Math.max(steps, 3);\n\n    let f = dist / (steps);\n    let t = start;\n\n    // modify direction\n    f *= clockwise ? -1 : 1;\n\n    for (let i = 0; i < steps + 1; i++)\n    {\n        const cs = Math.cos(t);\n        const sn = Math.sin(t);\n\n        const nx = x + (cs * radius);\n        const ny = y + (sn * radius);\n\n        points.push(nx, ny);\n\n        t += f;\n    }\n}\n"],"names":[],"mappings":";AAWO,SAAS,QAAA,CACZ,QACA,CAAA,EAAW,CAAA,EACX,QACA,KAAA,EACA,GAAA,EACA,WACA,KAAA,EAEJ;AAGI,EAAA,IAAI,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,KAAA,GAAQ,GAAG,CAAA;AAE/B,EAAA,IAAI,CAAC,SAAA,IAAa,KAAA,GAAQ,GAAA,EAC1B;AACI,IAAA,IAAA,GAAQ,CAAA,GAAI,KAAK,EAAA,GAAM,IAAA;AAAA,EAC3B,CAAA,MAAA,IACS,SAAA,IAAa,GAAA,GAAM,KAAA,EAC5B;AACI,IAAA,IAAA,GAAQ,CAAA,GAAI,KAAK,EAAA,GAAM,IAAA;AAAA,EAC3B;AAIA,EAAA,KAAA,KAAA,KAAA,GAAU,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAC,CAAA,IAAK,IAAA,GAAQ,IAAA,CAAK,GAAI,CAAC,CAAA,CAAA;AAGlF,EAAA,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,CAAC,CAAA;AAEzB,EAAA,IAAI,IAAI,IAAA,GAAQ,KAAA;AAChB,EAAA,IAAI,CAAA,GAAI,KAAA;AAGR,EAAA,CAAA,IAAK,YAAY,CAAA,CAAA,GAAK,CAAA;AAEtB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,GAAQ,GAAG,CAAA,EAAA,EAC/B;AACI,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA;AACrB,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA;AAErB,IAAA,MAAM,EAAA,GAAK,IAAK,EAAA,GAAK,MAAA;AACrB,IAAA,MAAM,EAAA,GAAK,IAAK,EAAA,GAAK,MAAA;AAErB,IAAA,MAAA,CAAO,IAAA,CAAK,IAAI,EAAE,CAAA;AAElB,IAAA,CAAA,IAAK,CAAA;AAAA,EACT;AACJ;;;;"}