1 line
18 KiB
Plaintext
1 line
18 KiB
Plaintext
{"version":3,"file":"CircleBuilder.mjs","sources":["../../src/shapes/CircleBuilder.ts"],"sourcesContent":["// for type only\r\nimport { SHAPES } from '@pixi/core';\r\n\r\nimport type { Circle, Ellipse, RoundedRectangle } from '@pixi/core';\r\nimport type { IShapeBuilder } from '../core/IShapeBuilder';\r\nimport { SmoothGraphicsData } from '../core/SmoothGraphicsData';\r\nimport { BuildData } from '../core/BuildData';\r\nimport { JOINT_TYPE } from '../core/const';\r\n\r\n/**\r\n * @memberof PIXI.smooth\r\n */\r\nexport class CircleBuilder implements IShapeBuilder\r\n{\r\n path(graphicsData: SmoothGraphicsData, _target: BuildData)\r\n {\r\n // need to convert points to a nice regular data\r\n const points = graphicsData.points;\r\n\r\n let x;\r\n let y;\r\n let dx;\r\n let dy;\r\n let rx;\r\n let ry;\r\n\r\n if (graphicsData.type === SHAPES.CIRC)\r\n {\r\n const circle = graphicsData.shape as Circle;\r\n\r\n x = circle.x;\r\n y = circle.y;\r\n rx = ry = circle.radius;\r\n dx = dy = 0;\r\n }\r\n else if (graphicsData.type === SHAPES.ELIP)\r\n {\r\n const ellipse = graphicsData.shape as Ellipse;\r\n\r\n x = ellipse.x;\r\n y = ellipse.y;\r\n rx = ellipse.width;\r\n ry = ellipse.height;\r\n dx = dy = 0;\r\n }\r\n else\r\n {\r\n const roundedRect = graphicsData.shape as RoundedRectangle;\r\n const halfWidth = roundedRect.width / 2;\r\n const halfHeight = roundedRect.height / 2;\r\n\r\n x = roundedRect.x + halfWidth;\r\n y = roundedRect.y + halfHeight;\r\n rx = ry = Math.max(0, Math.min(roundedRect.radius, Math.min(halfWidth, halfHeight)));\r\n dx = halfWidth - rx;\r\n dy = halfHeight - ry;\r\n }\r\n\r\n if (!(rx >= 0 && ry >= 0 && dx >= 0 && dy >= 0))\r\n {\r\n points.length = 0;\r\n\r\n return;\r\n }\r\n\r\n // Choose a number of segments such that the maximum absolute deviation from the circle is approximately 0.029\r\n const n = Math.ceil(2.3 * Math.sqrt(rx + ry));\r\n const m = (n * 8) + (dx ? 4 : 0) + (dy ? 4 : 0);\r\n\r\n points.length = m;\r\n\r\n if (m === 0)\r\n {\r\n return;\r\n }\r\n\r\n if (n === 0)\r\n {\r\n points.length = 8;\r\n points[0] = points[6] = x + dx;\r\n points[1] = points[3] = y + dy;\r\n points[2] = points[4] = x - dx;\r\n points[5] = points[7] = y - dy;\r\n\r\n return;\r\n }\r\n\r\n let j1 = 0;\r\n let j2 = (n * 4) + (dx ? 2 : 0) + 2;\r\n let j3 = j2;\r\n let j4 = m;\r\n\r\n {\r\n const x0 = dx + rx;\r\n const y0 = dy;\r\n const x1 = x + x0;\r\n const x2 = x - x0;\r\n const y1 = y + y0;\r\n\r\n points[j1++] = x1;\r\n points[j1++] = y1;\r\n points[--j2] = y1;\r\n points[--j2] = x2;\r\n\r\n if (dy)\r\n {\r\n const y2 = y - y0;\r\n\r\n points[j3++] = x2;\r\n points[j3++] = y2;\r\n points[--j4] = y2;\r\n points[--j4] = x1;\r\n }\r\n }\r\n\r\n for (let i = 1; i < n; i++)\r\n {\r\n const a = Math.PI / 2 * (i / n);\r\n const x0 = dx + (Math.cos(a) * rx);\r\n const y0 = dy + (Math.sin(a) * ry);\r\n const x1 = x + x0;\r\n const x2 = x - x0;\r\n const y1 = y + y0;\r\n const y2 = y - y0;\r\n\r\n points[j1++] = x1;\r\n points[j1++] = y1;\r\n points[--j2] = y1;\r\n points[--j2] = x2;\r\n points[j3++] = x2;\r\n points[j3++] = y2;\r\n points[--j4] = y2;\r\n points[--j4] = x1;\r\n }\r\n\r\n {\r\n const x0 = dx;\r\n const y0 = dy + ry;\r\n const x1 = x + x0;\r\n const x2 = x - x0;\r\n const y1 = y + y0;\r\n const y2 = y - y0;\r\n\r\n points[j1++] = x1;\r\n points[j1++] = y1;\r\n points[--j4] = y2;\r\n points[--j4] = x1;\r\n\r\n if (dx)\r\n {\r\n points[j1++] = x2;\r\n points[j1++] = y1;\r\n points[--j4] = y2;\r\n points[--j4] = x2;\r\n }\r\n }\r\n }\r\n\r\n fill(graphicsData: SmoothGraphicsData, target: BuildData)\r\n {\r\n const { verts, joints } = target;\r\n const { points, triangles } = graphicsData;\r\n\r\n if (points.length === 0)\r\n {\r\n return;\r\n }\r\n\r\n let x;\r\n let y;\r\n\r\n if (graphicsData.type !== SHAPES.RREC)\r\n {\r\n const circle = graphicsData.shape as Circle;\r\n\r\n x = circle.x;\r\n y = circle.y;\r\n }\r\n else\r\n {\r\n const roundedRect = graphicsData.shape as RoundedRectangle;\r\n\r\n x = roundedRect.x + (roundedRect.width / 2);\r\n y = roundedRect.y + (roundedRect.height / 2);\r\n }\r\n\r\n const matrix = graphicsData.matrix;\r\n const cx = matrix ? (matrix.a * x) + (matrix.c * y) + matrix.tx : x;\r\n const cy = matrix ? (matrix.b * x) + (matrix.d * y) + matrix.ty : y;\r\n\r\n let vertPos = 1;\r\n const center = 0;\r\n\r\n if (!graphicsData.fillAA)\r\n {\r\n verts.push(cx, cy);\r\n joints.push(JOINT_TYPE.FILL);\r\n verts.push(points[0], points[1]);\r\n joints.push(JOINT_TYPE.FILL);\r\n\r\n for (let i = 2; i < points.length; i += 2)\r\n {\r\n verts.push(points[i], points[i + 1]);\r\n joints.push(JOINT_TYPE.FILL);\r\n\r\n triangles.push(vertPos++, center, vertPos);\r\n }\r\n\r\n triangles.push(center + 1, center, vertPos);\r\n\r\n return;\r\n }\r\n\r\n const len = points.length;\r\n\r\n let x1 = points[len - 2];\r\n let y1 = points[len - 1];\r\n\r\n let nx1 = y1 - points[len - 3];\r\n let ny1 = points[len - 4] - x1;\r\n const n1 = Math.sqrt((nx1 * nx1) + (ny1 * ny1));\r\n\r\n nx1 /= n1;\r\n ny1 /= n1;\r\n\r\n let bx1;\r\n let by1;\r\n\r\n for (let i = 0; i < len; i += 2)\r\n {\r\n const x2 = points[i];\r\n const y2 = points[i + 1];\r\n\r\n let nx2 = y2 - y1;\r\n let ny2 = x1 - x2;\r\n const n2 = Math.sqrt((nx2 * nx2) + (ny2 * ny2));\r\n\r\n nx2 /= n2;\r\n ny2 /= n2;\r\n\r\n let bx2 = nx1 + nx2;\r\n let by2 = ny1 + ny2;\r\n const b2 = (nx2 * bx2) + (ny2 * by2);\r\n\r\n bx2 /= b2;\r\n by2 /= b2;\r\n\r\n if (i > 0)\r\n {\r\n verts.push(bx2);\r\n verts.push(by2);\r\n }\r\n else\r\n {\r\n bx1 = bx2;\r\n by1 = by2;\r\n }\r\n\r\n verts.push(cx);\r\n verts.push(cy);\r\n verts.push(x1);\r\n verts.push(y1);\r\n verts.push(x2);\r\n verts.push(y2);\r\n\r\n verts.push(0);\r\n verts.push(0);\r\n verts.push(bx2);\r\n verts.push(by2);\r\n\r\n joints.push(JOINT_TYPE.FILL_EXPAND + 2);\r\n joints.push(JOINT_TYPE.NONE);\r\n joints.push(JOINT_TYPE.NONE);\r\n joints.push(JOINT_TYPE.NONE);\r\n joints.push(JOINT_TYPE.NONE);\r\n joints.push(JOINT_TYPE.NONE);\r\n\r\n x1 = x2;\r\n y1 = y2;\r\n nx1 = nx2;\r\n ny1 = ny2;\r\n }\r\n\r\n verts.push(bx1);\r\n verts.push(by1);\r\n }\r\n\r\n line(graphicsData: SmoothGraphicsData, target: BuildData): void\r\n {\r\n const { verts, joints } = target;\r\n const { points } = graphicsData;\r\n const joint = points.length === 8 // we dont need joints for arcs\r\n ? graphicsData.goodJointType() : JOINT_TYPE.JOINT_MITER + 3;\r\n const len = points.length;\r\n\r\n if (len === 0)\r\n {\r\n return;\r\n }\r\n\r\n verts.push(points[len - 2], points[len - 1]);\r\n joints.push(JOINT_TYPE.NONE);\r\n for (let i = 0; i < len; i += 2)\r\n {\r\n verts.push(points[i], points[i + 1]);\r\n joints.push(joint);\r\n }\r\n verts.push(points[0], points[1]);\r\n joints.push(JOINT_TYPE.NONE);\r\n verts.push(points[2], points[3]);\r\n joints.push(JOINT_TYPE.NONE);\r\n }\r\n}\r\n"],"names":[],"mappings":"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"} |