Files
nothoughts/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildCircle.mjs.map
2025-08-04 18:57:35 +02:00

1 line
12 KiB
Plaintext

{"version":3,"file":"buildCircle.mjs","sources":["../../../../../src/scene/graphics/shared/buildCommands/buildCircle.ts"],"sourcesContent":["import { ExtensionType } from '../../../../extensions/Extensions';\n\nimport type { Circle } from '../../../../maths/shapes/Circle';\nimport type { Ellipse } from '../../../../maths/shapes/Ellipse';\nimport type { RoundedRectangle } from '../../../../maths/shapes/RoundedRectangle';\nimport type { ShapeBuildCommand } from './ShapeBuildCommand';\n\ntype RoundedShape = Circle | Ellipse | RoundedRectangle;\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 buildCircle: ShapeBuildCommand<RoundedShape> = {\n extension: {\n type: ExtensionType.ShapeBuilder,\n name: 'circle',\n },\n\n build(shape: RoundedShape, points: number[])\n {\n let x;\n let y;\n let dx;\n let dy;\n\n let rx;\n let ry;\n\n if (shape.type === 'circle')\n {\n const circle = shape as Circle;\n\n x = circle.x;\n y = circle.y;\n rx = ry = circle.radius;\n dx = dy = 0;\n }\n\n else if (shape.type === 'ellipse')\n {\n const ellipse = shape as Ellipse;\n\n x = ellipse.x;\n y = ellipse.y;\n rx = ellipse.halfWidth;\n ry = ellipse.halfHeight;\n dx = dy = 0;\n }\n else\n {\n const roundedRect = shape as RoundedRectangle;\n const halfWidth = roundedRect.width / 2;\n const halfHeight = roundedRect.height / 2;\n\n x = roundedRect.x + halfWidth;\n y = roundedRect.y + halfHeight;\n rx = ry = Math.max(0, Math.min(roundedRect.radius, Math.min(halfWidth, halfHeight)));\n dx = halfWidth - rx;\n dy = halfHeight - ry;\n }\n\n if (!(rx >= 0 && ry >= 0 && dx >= 0 && dy >= 0))\n {\n return points;\n }\n\n // Choose a number of segments such that the maximum absolute deviation from the circle is approximately 0.029\n const n = Math.ceil(2.3 * Math.sqrt(rx + ry));\n const m = (n * 8) + (dx ? 4 : 0) + (dy ? 4 : 0);\n\n if (m === 0)\n {\n return points;\n }\n\n if (n === 0)\n {\n points[0] = points[6] = x + dx;\n points[1] = points[3] = y + dy;\n points[2] = points[4] = x - dx;\n points[5] = points[7] = y - dy;\n\n return points;\n }\n\n let j1 = 0;\n let j2 = (n * 4) + (dx ? 2 : 0) + 2;\n let j3 = j2;\n let j4 = m;\n\n let x0 = dx + rx;\n let y0 = dy;\n let x1 = x + x0;\n let x2 = x - x0;\n let y1 = y + y0;\n\n points[j1++] = x1;\n points[j1++] = y1;\n points[--j2] = y1;\n points[--j2] = x2;\n\n if (dy)\n {\n const y2 = y - y0;\n\n points[j3++] = x2;\n points[j3++] = y2;\n points[--j4] = y2;\n points[--j4] = x1;\n }\n\n for (let i = 1; i < n; i++)\n {\n const a = Math.PI / 2 * (i / n);\n const x0 = dx + (Math.cos(a) * rx);\n const y0 = dy + (Math.sin(a) * ry);\n const x1 = x + x0;\n const x2 = x - x0;\n const y1 = y + y0;\n const y2 = y - y0;\n\n points[j1++] = x1;\n points[j1++] = y1;\n points[--j2] = y1;\n points[--j2] = x2;\n points[j3++] = x2;\n points[j3++] = y2;\n points[--j4] = y2;\n points[--j4] = x1;\n }\n\n x0 = dx;\n y0 = dy + ry;\n x1 = x + x0;\n x2 = x - x0;\n y1 = y + y0;\n const y2 = y - y0;\n\n points[j1++] = x1;\n points[j1++] = y1;\n points[--j4] = y2;\n points[--j4] = x1;\n\n if (dx)\n {\n points[j1++] = x2;\n points[j1++] = y1;\n points[--j4] = y2;\n points[--j4] = x2;\n }\n\n return points;\n },\n\n triangulate(points, vertices, verticesStride, verticesOffset, indices, indicesOffset)\n {\n if (points.length === 0)\n {\n return;\n }\n\n // Compute center (average of all points)\n let centerX = 0; let\n centerY = 0;\n\n for (let i = 0; i < points.length; i += 2)\n {\n centerX += points[i];\n centerY += points[i + 1];\n }\n centerX /= (points.length / 2);\n centerY /= (points.length / 2);\n\n // Set center vertex\n let count = verticesOffset;\n\n vertices[count * verticesStride] = centerX;\n vertices[(count * verticesStride) + 1] = centerY;\n const centerIndex = count++;\n\n // Set edge vertices and indices\n for (let i = 0; i < points.length; i += 2)\n {\n vertices[count * verticesStride] = points[i];\n vertices[(count * verticesStride) + 1] = points[i + 1];\n\n if (i > 0)\n { // Skip first point for indices\n indices[indicesOffset++] = count;\n indices[indicesOffset++] = centerIndex;\n indices[indicesOffset++] = count - 1;\n }\n count++;\n }\n\n // Connect last point to the first edge point\n indices[indicesOffset++] = centerIndex + 1;\n indices[indicesOffset++] = centerIndex;\n indices[indicesOffset++] = count - 1;\n }\n\n};\n\nexport const buildEllipse = { ...buildCircle, extension: { ...buildCircle.extension, name: 'ellipse' } };\nexport const buildRoundedRectangle = { ...buildCircle, extension: { ...buildCircle.extension, name: 'roundedRectangle' } };\n"],"names":["y2","x0","y0","x1","x2","y1"],"mappings":"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"}