111 lines
3.9 KiB
JavaScript
111 lines
3.9 KiB
JavaScript
shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$buildCommands$buildCircle = function(global, require, module, exports) {
|
|
global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
|
|
"use strict";
|
|
global = {extension:{type:global.ExtensionType.ShapeBuilder, name:"circle"}, build(shape, points) {
|
|
let y;
|
|
var dy;
|
|
let rx, ry;
|
|
if ("circle" === shape.type) {
|
|
rx = ry = shape.radius;
|
|
if (0 >= rx) {
|
|
return !1;
|
|
}
|
|
var x = shape.x;
|
|
y = shape.y;
|
|
shape = dy = 0;
|
|
} else if ("ellipse" === shape.type) {
|
|
rx = shape.halfWidth;
|
|
ry = shape.halfHeight;
|
|
if (0 >= rx || 0 >= ry) {
|
|
return !1;
|
|
}
|
|
x = shape.x;
|
|
y = shape.y;
|
|
shape = dy = 0;
|
|
} else {
|
|
dy = shape.width / 2;
|
|
var halfHeight = shape.height / 2;
|
|
x = shape.x + dy;
|
|
y = shape.y + halfHeight;
|
|
rx = ry = Math.max(0, Math.min(shape.radius, Math.min(dy, halfHeight)));
|
|
shape = dy - rx;
|
|
dy = halfHeight - ry;
|
|
}
|
|
if (0 > shape || 0 > dy) {
|
|
return !1;
|
|
}
|
|
const n = Math.ceil(2.3 * Math.sqrt(rx + ry));
|
|
var m = 8 * n + (shape ? 4 : 0) + (dy ? 4 : 0);
|
|
if (0 === m) {
|
|
return !1;
|
|
}
|
|
if (0 === n) {
|
|
return points[0] = points[6] = x + shape, points[1] = points[3] = y + dy, points[2] = points[4] = x - shape, points[5] = points[7] = y - dy, !0;
|
|
}
|
|
halfHeight = 0;
|
|
let j2 = 4 * n + (shape ? 2 : 0) + 2, j3 = j2;
|
|
var x0 = shape + rx, y0 = dy, x1 = x + x0;
|
|
x0 = x - x0;
|
|
var y1 = y + y0;
|
|
points[halfHeight++] = x1;
|
|
points[halfHeight++] = y1;
|
|
points[--j2] = y1;
|
|
points[--j2] = x0;
|
|
dy && (y0 = y - y0, points[j3++] = x0, points[j3++] = y0, points[--m] = y0, points[--m] = x1);
|
|
for (x1 = 1; x1 < n; x1++) {
|
|
x0 = Math.PI / 2 * (x1 / n);
|
|
y1 = shape + Math.cos(x0) * rx;
|
|
y0 = dy + Math.sin(x0) * ry;
|
|
x0 = x + y1;
|
|
y1 = x - y1;
|
|
const y12 = y + y0;
|
|
y0 = y - y0;
|
|
points[halfHeight++] = x0;
|
|
points[halfHeight++] = y12;
|
|
points[--j2] = y12;
|
|
points[--j2] = y1;
|
|
points[j3++] = y1;
|
|
points[j3++] = y0;
|
|
points[--m] = y0;
|
|
points[--m] = x0;
|
|
}
|
|
x0 = shape;
|
|
y0 = dy + ry;
|
|
x1 = x + x0;
|
|
x0 = x - x0;
|
|
y1 = y + y0;
|
|
x = y - y0;
|
|
points[halfHeight++] = x1;
|
|
points[halfHeight++] = y1;
|
|
points[--m] = x;
|
|
points[--m] = x1;
|
|
shape && (points[halfHeight++] = x0, points[halfHeight++] = y1, points[--m] = x, points[--m] = x0);
|
|
return !0;
|
|
}, triangulate(points, vertices, verticesStride, verticesOffset, indices, indicesOffset) {
|
|
if (0 !== points.length) {
|
|
var centerX = 0, centerY = 0;
|
|
for (let i = 0; i < points.length; i += 2) {
|
|
centerX += points[i], centerY += points[i + 1];
|
|
}
|
|
centerX /= points.length / 2;
|
|
centerY /= points.length / 2;
|
|
vertices[verticesOffset * verticesStride] = centerX;
|
|
vertices[verticesOffset * verticesStride + 1] = centerY;
|
|
centerX = verticesOffset++;
|
|
for (centerY = 0; centerY < points.length; centerY += 2) {
|
|
vertices[verticesOffset * verticesStride] = points[centerY], vertices[verticesOffset * verticesStride + 1] = points[centerY + 1], 0 < centerY && (indices[indicesOffset++] = verticesOffset, indices[indicesOffset++] = centerX, indices[indicesOffset++] = verticesOffset - 1), verticesOffset++;
|
|
}
|
|
indices[indicesOffset++] = centerX + 1;
|
|
indices[indicesOffset++] = centerX;
|
|
indices[indicesOffset++] = verticesOffset - 1;
|
|
}
|
|
}};
|
|
require = {...global, extension:{...global.extension, name:"ellipse"}};
|
|
module = {...global, extension:{...global.extension, name:"roundedRectangle"}};
|
|
exports.buildCircle = global;
|
|
exports.buildEllipse = require;
|
|
exports.buildRoundedRectangle = module;
|
|
};
|
|
|
|
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$buildCommands$buildCircle.js.map
|