This commit is contained in:
2025-01-04 00:34:03 +01:00
parent 41829408dc
commit 0ca14bbc19
18111 changed files with 1871397 additions and 0 deletions

View File

@@ -0,0 +1,225 @@
'use strict';
var core = require('@pixi/core');
var _const = require('../core/const.js');
class CircleBuilder {
path(graphicsData, _target) {
const points = graphicsData.points;
let x;
let y;
let dx;
let dy;
let rx;
let ry;
if (graphicsData.type === core.SHAPES.CIRC) {
const circle = graphicsData.shape;
x = circle.x;
y = circle.y;
rx = ry = circle.radius;
dx = dy = 0;
} else if (graphicsData.type === core.SHAPES.ELIP) {
const ellipse = graphicsData.shape;
x = ellipse.x;
y = ellipse.y;
rx = ellipse.width;
ry = ellipse.height;
dx = dy = 0;
} else {
const roundedRect = graphicsData.shape;
const halfWidth = roundedRect.width / 2;
const halfHeight = roundedRect.height / 2;
x = roundedRect.x + halfWidth;
y = roundedRect.y + halfHeight;
rx = ry = Math.max(0, Math.min(roundedRect.radius, Math.min(halfWidth, halfHeight)));
dx = halfWidth - rx;
dy = halfHeight - ry;
}
if (!(rx >= 0 && ry >= 0 && dx >= 0 && dy >= 0)) {
points.length = 0;
return;
}
const n = Math.ceil(2.3 * Math.sqrt(rx + ry));
const m = n * 8 + (dx ? 4 : 0) + (dy ? 4 : 0);
points.length = m;
if (m === 0) {
return;
}
if (n === 0) {
points.length = 8;
points[0] = points[6] = x + dx;
points[1] = points[3] = y + dy;
points[2] = points[4] = x - dx;
points[5] = points[7] = y - dy;
return;
}
let j1 = 0;
let j2 = n * 4 + (dx ? 2 : 0) + 2;
let j3 = j2;
let j4 = m;
{
const x0 = dx + rx;
const y0 = dy;
const x1 = x + x0;
const x2 = x - x0;
const y1 = y + y0;
points[j1++] = x1;
points[j1++] = y1;
points[--j2] = y1;
points[--j2] = x2;
if (dy) {
const y2 = y - y0;
points[j3++] = x2;
points[j3++] = y2;
points[--j4] = y2;
points[--j4] = x1;
}
}
for (let i = 1; i < n; i++) {
const a = Math.PI / 2 * (i / n);
const x0 = dx + Math.cos(a) * rx;
const y0 = dy + Math.sin(a) * ry;
const x1 = x + x0;
const x2 = x - x0;
const y1 = y + y0;
const y2 = y - y0;
points[j1++] = x1;
points[j1++] = y1;
points[--j2] = y1;
points[--j2] = x2;
points[j3++] = x2;
points[j3++] = y2;
points[--j4] = y2;
points[--j4] = x1;
}
{
const x0 = dx;
const y0 = dy + ry;
const x1 = x + x0;
const x2 = x - x0;
const y1 = y + y0;
const y2 = y - y0;
points[j1++] = x1;
points[j1++] = y1;
points[--j4] = y2;
points[--j4] = x1;
if (dx) {
points[j1++] = x2;
points[j1++] = y1;
points[--j4] = y2;
points[--j4] = x2;
}
}
}
fill(graphicsData, target) {
const { verts, joints } = target;
const { points, triangles } = graphicsData;
if (points.length === 0) {
return;
}
let x;
let y;
if (graphicsData.type !== core.SHAPES.RREC) {
const circle = graphicsData.shape;
x = circle.x;
y = circle.y;
} else {
const roundedRect = graphicsData.shape;
x = roundedRect.x + roundedRect.width / 2;
y = roundedRect.y + roundedRect.height / 2;
}
const matrix = graphicsData.matrix;
const cx = matrix ? matrix.a * x + matrix.c * y + matrix.tx : x;
const cy = matrix ? matrix.b * x + matrix.d * y + matrix.ty : y;
let vertPos = 1;
const center = 0;
if (!graphicsData.fillAA) {
verts.push(cx, cy);
joints.push(_const.JOINT_TYPE.FILL);
verts.push(points[0], points[1]);
joints.push(_const.JOINT_TYPE.FILL);
for (let i = 2; i < points.length; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(_const.JOINT_TYPE.FILL);
triangles.push(vertPos++, center, vertPos);
}
triangles.push(center + 1, center, vertPos);
return;
}
const len = points.length;
let x1 = points[len - 2];
let y1 = points[len - 1];
let nx1 = y1 - points[len - 3];
let ny1 = points[len - 4] - x1;
const n1 = Math.sqrt(nx1 * nx1 + ny1 * ny1);
nx1 /= n1;
ny1 /= n1;
let bx1;
let by1;
for (let i = 0; i < len; i += 2) {
const x2 = points[i];
const y2 = points[i + 1];
let nx2 = y2 - y1;
let ny2 = x1 - x2;
const n2 = Math.sqrt(nx2 * nx2 + ny2 * ny2);
nx2 /= n2;
ny2 /= n2;
let bx2 = nx1 + nx2;
let by2 = ny1 + ny2;
const b2 = nx2 * bx2 + ny2 * by2;
bx2 /= b2;
by2 /= b2;
if (i > 0) {
verts.push(bx2);
verts.push(by2);
} else {
bx1 = bx2;
by1 = by2;
}
verts.push(cx);
verts.push(cy);
verts.push(x1);
verts.push(y1);
verts.push(x2);
verts.push(y2);
verts.push(0);
verts.push(0);
verts.push(bx2);
verts.push(by2);
joints.push(_const.JOINT_TYPE.FILL_EXPAND + 2);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
x1 = x2;
y1 = y2;
nx1 = nx2;
ny1 = ny2;
}
verts.push(bx1);
verts.push(by1);
}
line(graphicsData, target) {
const { verts, joints } = target;
const { points } = graphicsData;
const joint = points.length === 8 ? graphicsData.goodJointType() : _const.JOINT_TYPE.JOINT_MITER + 3;
const len = points.length;
if (len === 0) {
return;
}
verts.push(points[len - 2], points[len - 1]);
joints.push(_const.JOINT_TYPE.NONE);
for (let i = 0; i < len; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(joint);
}
verts.push(points[0], points[1]);
joints.push(_const.JOINT_TYPE.NONE);
verts.push(points[2], points[3]);
joints.push(_const.JOINT_TYPE.NONE);
}
}
exports.CircleBuilder = CircleBuilder;
//# sourceMappingURL=CircleBuilder.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,223 @@
import { SHAPES } from '@pixi/core';
import { JOINT_TYPE } from '../core/const.mjs';
class CircleBuilder {
path(graphicsData, _target) {
const points = graphicsData.points;
let x;
let y;
let dx;
let dy;
let rx;
let ry;
if (graphicsData.type === SHAPES.CIRC) {
const circle = graphicsData.shape;
x = circle.x;
y = circle.y;
rx = ry = circle.radius;
dx = dy = 0;
} else if (graphicsData.type === SHAPES.ELIP) {
const ellipse = graphicsData.shape;
x = ellipse.x;
y = ellipse.y;
rx = ellipse.width;
ry = ellipse.height;
dx = dy = 0;
} else {
const roundedRect = graphicsData.shape;
const halfWidth = roundedRect.width / 2;
const halfHeight = roundedRect.height / 2;
x = roundedRect.x + halfWidth;
y = roundedRect.y + halfHeight;
rx = ry = Math.max(0, Math.min(roundedRect.radius, Math.min(halfWidth, halfHeight)));
dx = halfWidth - rx;
dy = halfHeight - ry;
}
if (!(rx >= 0 && ry >= 0 && dx >= 0 && dy >= 0)) {
points.length = 0;
return;
}
const n = Math.ceil(2.3 * Math.sqrt(rx + ry));
const m = n * 8 + (dx ? 4 : 0) + (dy ? 4 : 0);
points.length = m;
if (m === 0) {
return;
}
if (n === 0) {
points.length = 8;
points[0] = points[6] = x + dx;
points[1] = points[3] = y + dy;
points[2] = points[4] = x - dx;
points[5] = points[7] = y - dy;
return;
}
let j1 = 0;
let j2 = n * 4 + (dx ? 2 : 0) + 2;
let j3 = j2;
let j4 = m;
{
const x0 = dx + rx;
const y0 = dy;
const x1 = x + x0;
const x2 = x - x0;
const y1 = y + y0;
points[j1++] = x1;
points[j1++] = y1;
points[--j2] = y1;
points[--j2] = x2;
if (dy) {
const y2 = y - y0;
points[j3++] = x2;
points[j3++] = y2;
points[--j4] = y2;
points[--j4] = x1;
}
}
for (let i = 1; i < n; i++) {
const a = Math.PI / 2 * (i / n);
const x0 = dx + Math.cos(a) * rx;
const y0 = dy + Math.sin(a) * ry;
const x1 = x + x0;
const x2 = x - x0;
const y1 = y + y0;
const y2 = y - y0;
points[j1++] = x1;
points[j1++] = y1;
points[--j2] = y1;
points[--j2] = x2;
points[j3++] = x2;
points[j3++] = y2;
points[--j4] = y2;
points[--j4] = x1;
}
{
const x0 = dx;
const y0 = dy + ry;
const x1 = x + x0;
const x2 = x - x0;
const y1 = y + y0;
const y2 = y - y0;
points[j1++] = x1;
points[j1++] = y1;
points[--j4] = y2;
points[--j4] = x1;
if (dx) {
points[j1++] = x2;
points[j1++] = y1;
points[--j4] = y2;
points[--j4] = x2;
}
}
}
fill(graphicsData, target) {
const { verts, joints } = target;
const { points, triangles } = graphicsData;
if (points.length === 0) {
return;
}
let x;
let y;
if (graphicsData.type !== SHAPES.RREC) {
const circle = graphicsData.shape;
x = circle.x;
y = circle.y;
} else {
const roundedRect = graphicsData.shape;
x = roundedRect.x + roundedRect.width / 2;
y = roundedRect.y + roundedRect.height / 2;
}
const matrix = graphicsData.matrix;
const cx = matrix ? matrix.a * x + matrix.c * y + matrix.tx : x;
const cy = matrix ? matrix.b * x + matrix.d * y + matrix.ty : y;
let vertPos = 1;
const center = 0;
if (!graphicsData.fillAA) {
verts.push(cx, cy);
joints.push(JOINT_TYPE.FILL);
verts.push(points[0], points[1]);
joints.push(JOINT_TYPE.FILL);
for (let i = 2; i < points.length; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(JOINT_TYPE.FILL);
triangles.push(vertPos++, center, vertPos);
}
triangles.push(center + 1, center, vertPos);
return;
}
const len = points.length;
let x1 = points[len - 2];
let y1 = points[len - 1];
let nx1 = y1 - points[len - 3];
let ny1 = points[len - 4] - x1;
const n1 = Math.sqrt(nx1 * nx1 + ny1 * ny1);
nx1 /= n1;
ny1 /= n1;
let bx1;
let by1;
for (let i = 0; i < len; i += 2) {
const x2 = points[i];
const y2 = points[i + 1];
let nx2 = y2 - y1;
let ny2 = x1 - x2;
const n2 = Math.sqrt(nx2 * nx2 + ny2 * ny2);
nx2 /= n2;
ny2 /= n2;
let bx2 = nx1 + nx2;
let by2 = ny1 + ny2;
const b2 = nx2 * bx2 + ny2 * by2;
bx2 /= b2;
by2 /= b2;
if (i > 0) {
verts.push(bx2);
verts.push(by2);
} else {
bx1 = bx2;
by1 = by2;
}
verts.push(cx);
verts.push(cy);
verts.push(x1);
verts.push(y1);
verts.push(x2);
verts.push(y2);
verts.push(0);
verts.push(0);
verts.push(bx2);
verts.push(by2);
joints.push(JOINT_TYPE.FILL_EXPAND + 2);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
x1 = x2;
y1 = y2;
nx1 = nx2;
ny1 = ny2;
}
verts.push(bx1);
verts.push(by1);
}
line(graphicsData, target) {
const { verts, joints } = target;
const { points } = graphicsData;
const joint = points.length === 8 ? graphicsData.goodJointType() : JOINT_TYPE.JOINT_MITER + 3;
const len = points.length;
if (len === 0) {
return;
}
verts.push(points[len - 2], points[len - 1]);
joints.push(JOINT_TYPE.NONE);
for (let i = 0; i < len; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(joint);
}
verts.push(points[0], points[1]);
joints.push(JOINT_TYPE.NONE);
verts.push(points[2], points[3]);
joints.push(JOINT_TYPE.NONE);
}
}
export { CircleBuilder };
//# sourceMappingURL=CircleBuilder.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,288 @@
'use strict';
var _const = require('../core/const.js');
var core = require('@pixi/core');
const tempArr = [];
function fixOrientation(points, hole = false) {
const m = points.length;
if (m < 6) {
return;
}
let area = 0;
for (let i = 0, x1 = points[m - 2], y1 = points[m - 1]; i < m; i += 2) {
const x2 = points[i];
const y2 = points[i + 1];
area += (x2 - x1) * (y2 + y1);
x1 = x2;
y1 = y2;
}
if (!hole && area > 0 || hole && area <= 0) {
const n = m / 2;
for (let i = n + n % 2; i < m; i += 2) {
const i1 = m - i - 2;
const i2 = m - i - 1;
const i3 = i;
const i4 = i + 1;
[points[i1], points[i3]] = [points[i3], points[i1]];
[points[i2], points[i4]] = [points[i4], points[i2]];
}
}
}
class PolyBuilder {
path(graphicsData, buildData) {
const shape = graphicsData.shape;
const points = graphicsData.points = shape.points.slice();
const eps = buildData.closePointEps;
const eps2 = eps * eps;
if (points.length === 0) {
return;
}
const firstPoint = new core.Point(points[0], points[1]);
const lastPoint = new core.Point(points[points.length - 2], points[points.length - 1]);
const closedShape = graphicsData.closeStroke = shape.closeStroke;
let len = points.length;
let newLen = 2;
for (let i = 2; i < len; i += 2) {
const x1 = points[i - 2];
const y1 = points[i - 1];
const x2 = points[i];
const y2 = points[i + 1];
let flag = true;
if (Math.abs(x1 - x2) < eps && Math.abs(y1 - y2) < eps) {
flag = false;
}
if (flag) {
points[newLen] = points[i];
points[newLen + 1] = points[i + 1];
newLen += 2;
}
}
points.length = len = newLen;
newLen = 2;
for (let i = 2; i + 2 < len; i += 2) {
let x1 = points[i - 2];
let y1 = points[i - 1];
const x2 = points[i];
const y2 = points[i + 1];
let x3 = points[i + 2];
let y3 = points[i + 3];
x1 -= x2;
y1 -= y2;
x3 -= x2;
y3 -= y2;
let flag = true;
if (Math.abs(x3 * y1 - y3 * x1) < eps2) {
if (x1 * x3 + y1 * y3 < -eps2) {
flag = false;
}
}
if (flag) {
points[newLen] = points[i];
points[newLen + 1] = points[i + 1];
newLen += 2;
}
}
points[newLen] = points[len - 2];
points[newLen + 1] = points[len - 1];
newLen += 2;
points.length = len = newLen;
if (len <= 2) {
return;
}
if (closedShape) {
const closedPath = Math.abs(firstPoint.x - lastPoint.x) < eps && Math.abs(firstPoint.y - lastPoint.y) < eps;
if (closedPath) {
points.pop();
points.pop();
}
}
}
line(graphicsData, buildData) {
const { closeStroke, points } = graphicsData;
const len = points.length;
if (len <= 2) {
return;
}
const { verts, joints } = buildData;
const joint = graphicsData.jointType();
const cap = graphicsData.capType();
let prevCap = 0;
let prevX;
let prevY;
if (closeStroke) {
prevX = points[len - 2];
prevY = points[len - 1];
joints.push(_const.JOINT_TYPE.NONE);
} else {
prevX = points[2];
prevY = points[3];
if (cap === _const.JOINT_TYPE.CAP_ROUND) {
verts.push(points[0], points[1]);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.CAP_ROUND);
prevCap = 0;
} else {
prevCap = cap;
joints.push(_const.JOINT_TYPE.NONE);
}
}
verts.push(prevX, prevY);
for (let i = 0; i < len; i += 2) {
const x1 = points[i];
const y1 = points[i + 1];
let endJoint = joint;
if (i + 2 >= len) {
if (!closeStroke) {
endJoint = _const.JOINT_TYPE.NONE;
}
} else if (i + 4 >= len) {
if (!closeStroke) {
if (cap === _const.JOINT_TYPE.CAP_ROUND) {
endJoint = _const.JOINT_TYPE.JOINT_CAP_ROUND;
}
if (cap === _const.JOINT_TYPE.CAP_BUTT) {
endJoint = _const.JOINT_TYPE.JOINT_CAP_BUTT;
}
if (cap === _const.JOINT_TYPE.CAP_SQUARE) {
endJoint = _const.JOINT_TYPE.JOINT_CAP_SQUARE;
}
}
}
endJoint += prevCap;
prevCap = 0;
verts.push(x1, y1);
joints.push(endJoint);
prevX = x1;
prevY = y1;
}
if (closeStroke) {
verts.push(points[0], points[1]);
joints.push(_const.JOINT_TYPE.NONE);
verts.push(points[2], points[3]);
joints.push(_const.JOINT_TYPE.NONE);
} else {
verts.push(points[len - 4], points[len - 3]);
joints.push(_const.JOINT_TYPE.NONE);
}
}
fill(graphicsData, buildData) {
let points = graphicsData.points;
const holes = graphicsData.holes;
const eps = buildData.closePointEps;
const { verts, joints } = buildData;
if (points.length < 6) {
return;
}
const holeArray = [];
let len = points.length;
fixOrientation(points, false);
for (let i = 0; i < holes.length; i++) {
const hole = holes[i];
fixOrientation(hole.points, true);
holeArray.push(points.length / 2);
points = points.concat(hole.points);
}
const pn = tempArr;
if (pn.length < points.length) {
pn.length = points.length;
}
let start = 0;
for (let i = 0; i <= holeArray.length; i++) {
let finish = len / 2;
if (i > 0) {
if (i < holeArray.length) {
finish = holeArray[i];
} else {
finish = points.length >> 1;
}
}
pn[start * 2] = finish - 1;
pn[(finish - 1) * 2 + 1] = start;
for (let j = start; j + 1 < finish; j++) {
pn[j * 2 + 1] = j + 1;
pn[j * 2 + 2] = j;
}
start = finish;
}
graphicsData.triangles = core.utils.earcut(points, holeArray, 2);
if (!graphicsData.triangles) {
return;
}
if (!graphicsData.fillAA) {
for (let i = 0; i < points.length; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(_const.JOINT_TYPE.FILL);
}
return;
}
const { triangles } = graphicsData;
len = points.length;
for (let i = 0; i < triangles.length; i += 3) {
let flag = 0;
for (let j = 0; j < 3; j++) {
const ind1 = triangles[i + j];
const ind2 = triangles[i + (j + 1) % 3];
if (pn[ind1 * 2] === ind2 || pn[ind1 * 2 + 1] === ind2) {
flag |= 1 << j;
}
}
joints.push(_const.JOINT_TYPE.FILL_EXPAND + flag);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
joints.push(_const.JOINT_TYPE.NONE);
}
for (let ind = 0; ind < len / 2; ind++) {
const prev = pn[ind * 2];
const next = pn[ind * 2 + 1];
let nx1 = points[next * 2 + 1] - points[ind * 2 + 1];
let ny1 = -(points[next * 2] - points[ind * 2]);
let nx2 = points[ind * 2 + 1] - points[prev * 2 + 1];
let ny2 = -(points[ind * 2] - points[prev * 2]);
const D1 = Math.sqrt(nx1 * nx1 + ny1 * ny1);
nx1 /= D1;
ny1 /= D1;
const D2 = Math.sqrt(nx2 * nx2 + ny2 * ny2);
nx2 /= D2;
ny2 /= D2;
let bx = nx1 + nx2;
let by = ny1 + ny2;
const D = bx * nx1 + by * ny1;
if (Math.abs(D) < eps) {
bx = nx1;
by = ny1;
} else {
bx /= D;
by /= D;
}
pn[ind * 2] = bx;
pn[ind * 2 + 1] = by;
}
for (let i = 0; i < triangles.length; i += 3) {
const prev = triangles[i];
const ind = triangles[i + 1];
const next = triangles[i + 2];
const nx1 = points[next * 2 + 1] - points[ind * 2 + 1];
const ny1 = -(points[next * 2] - points[ind * 2]);
const nx2 = points[ind * 2 + 1] - points[prev * 2 + 1];
const ny2 = -(points[ind * 2] - points[prev * 2]);
let j1 = 1;
if (nx1 * ny2 - nx2 * ny1 > 0) {
j1 = 2;
}
for (let j = 0; j < 3; j++) {
const ind2 = triangles[i + j * j1 % 3];
verts.push(points[ind2 * 2], points[ind2 * 2 + 1]);
}
for (let j = 0; j < 3; j++) {
const ind2 = triangles[i + j * j1 % 3];
verts.push(pn[ind2 * 2], pn[ind2 * 2 + 1]);
}
}
}
}
exports.PolyBuilder = PolyBuilder;
//# sourceMappingURL=PolyBuilder.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,286 @@
import { JOINT_TYPE } from '../core/const.mjs';
import { Point, utils } from '@pixi/core';
const tempArr = [];
function fixOrientation(points, hole = false) {
const m = points.length;
if (m < 6) {
return;
}
let area = 0;
for (let i = 0, x1 = points[m - 2], y1 = points[m - 1]; i < m; i += 2) {
const x2 = points[i];
const y2 = points[i + 1];
area += (x2 - x1) * (y2 + y1);
x1 = x2;
y1 = y2;
}
if (!hole && area > 0 || hole && area <= 0) {
const n = m / 2;
for (let i = n + n % 2; i < m; i += 2) {
const i1 = m - i - 2;
const i2 = m - i - 1;
const i3 = i;
const i4 = i + 1;
[points[i1], points[i3]] = [points[i3], points[i1]];
[points[i2], points[i4]] = [points[i4], points[i2]];
}
}
}
class PolyBuilder {
path(graphicsData, buildData) {
const shape = graphicsData.shape;
const points = graphicsData.points = shape.points.slice();
const eps = buildData.closePointEps;
const eps2 = eps * eps;
if (points.length === 0) {
return;
}
const firstPoint = new Point(points[0], points[1]);
const lastPoint = new Point(points[points.length - 2], points[points.length - 1]);
const closedShape = graphicsData.closeStroke = shape.closeStroke;
let len = points.length;
let newLen = 2;
for (let i = 2; i < len; i += 2) {
const x1 = points[i - 2];
const y1 = points[i - 1];
const x2 = points[i];
const y2 = points[i + 1];
let flag = true;
if (Math.abs(x1 - x2) < eps && Math.abs(y1 - y2) < eps) {
flag = false;
}
if (flag) {
points[newLen] = points[i];
points[newLen + 1] = points[i + 1];
newLen += 2;
}
}
points.length = len = newLen;
newLen = 2;
for (let i = 2; i + 2 < len; i += 2) {
let x1 = points[i - 2];
let y1 = points[i - 1];
const x2 = points[i];
const y2 = points[i + 1];
let x3 = points[i + 2];
let y3 = points[i + 3];
x1 -= x2;
y1 -= y2;
x3 -= x2;
y3 -= y2;
let flag = true;
if (Math.abs(x3 * y1 - y3 * x1) < eps2) {
if (x1 * x3 + y1 * y3 < -eps2) {
flag = false;
}
}
if (flag) {
points[newLen] = points[i];
points[newLen + 1] = points[i + 1];
newLen += 2;
}
}
points[newLen] = points[len - 2];
points[newLen + 1] = points[len - 1];
newLen += 2;
points.length = len = newLen;
if (len <= 2) {
return;
}
if (closedShape) {
const closedPath = Math.abs(firstPoint.x - lastPoint.x) < eps && Math.abs(firstPoint.y - lastPoint.y) < eps;
if (closedPath) {
points.pop();
points.pop();
}
}
}
line(graphicsData, buildData) {
const { closeStroke, points } = graphicsData;
const len = points.length;
if (len <= 2) {
return;
}
const { verts, joints } = buildData;
const joint = graphicsData.jointType();
const cap = graphicsData.capType();
let prevCap = 0;
let prevX;
let prevY;
if (closeStroke) {
prevX = points[len - 2];
prevY = points[len - 1];
joints.push(JOINT_TYPE.NONE);
} else {
prevX = points[2];
prevY = points[3];
if (cap === JOINT_TYPE.CAP_ROUND) {
verts.push(points[0], points[1]);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.CAP_ROUND);
prevCap = 0;
} else {
prevCap = cap;
joints.push(JOINT_TYPE.NONE);
}
}
verts.push(prevX, prevY);
for (let i = 0; i < len; i += 2) {
const x1 = points[i];
const y1 = points[i + 1];
let endJoint = joint;
if (i + 2 >= len) {
if (!closeStroke) {
endJoint = JOINT_TYPE.NONE;
}
} else if (i + 4 >= len) {
if (!closeStroke) {
if (cap === JOINT_TYPE.CAP_ROUND) {
endJoint = JOINT_TYPE.JOINT_CAP_ROUND;
}
if (cap === JOINT_TYPE.CAP_BUTT) {
endJoint = JOINT_TYPE.JOINT_CAP_BUTT;
}
if (cap === JOINT_TYPE.CAP_SQUARE) {
endJoint = JOINT_TYPE.JOINT_CAP_SQUARE;
}
}
}
endJoint += prevCap;
prevCap = 0;
verts.push(x1, y1);
joints.push(endJoint);
prevX = x1;
prevY = y1;
}
if (closeStroke) {
verts.push(points[0], points[1]);
joints.push(JOINT_TYPE.NONE);
verts.push(points[2], points[3]);
joints.push(JOINT_TYPE.NONE);
} else {
verts.push(points[len - 4], points[len - 3]);
joints.push(JOINT_TYPE.NONE);
}
}
fill(graphicsData, buildData) {
let points = graphicsData.points;
const holes = graphicsData.holes;
const eps = buildData.closePointEps;
const { verts, joints } = buildData;
if (points.length < 6) {
return;
}
const holeArray = [];
let len = points.length;
fixOrientation(points, false);
for (let i = 0; i < holes.length; i++) {
const hole = holes[i];
fixOrientation(hole.points, true);
holeArray.push(points.length / 2);
points = points.concat(hole.points);
}
const pn = tempArr;
if (pn.length < points.length) {
pn.length = points.length;
}
let start = 0;
for (let i = 0; i <= holeArray.length; i++) {
let finish = len / 2;
if (i > 0) {
if (i < holeArray.length) {
finish = holeArray[i];
} else {
finish = points.length >> 1;
}
}
pn[start * 2] = finish - 1;
pn[(finish - 1) * 2 + 1] = start;
for (let j = start; j + 1 < finish; j++) {
pn[j * 2 + 1] = j + 1;
pn[j * 2 + 2] = j;
}
start = finish;
}
graphicsData.triangles = utils.earcut(points, holeArray, 2);
if (!graphicsData.triangles) {
return;
}
if (!graphicsData.fillAA) {
for (let i = 0; i < points.length; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(JOINT_TYPE.FILL);
}
return;
}
const { triangles } = graphicsData;
len = points.length;
for (let i = 0; i < triangles.length; i += 3) {
let flag = 0;
for (let j = 0; j < 3; j++) {
const ind1 = triangles[i + j];
const ind2 = triangles[i + (j + 1) % 3];
if (pn[ind1 * 2] === ind2 || pn[ind1 * 2 + 1] === ind2) {
flag |= 1 << j;
}
}
joints.push(JOINT_TYPE.FILL_EXPAND + flag);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
joints.push(JOINT_TYPE.NONE);
}
for (let ind = 0; ind < len / 2; ind++) {
const prev = pn[ind * 2];
const next = pn[ind * 2 + 1];
let nx1 = points[next * 2 + 1] - points[ind * 2 + 1];
let ny1 = -(points[next * 2] - points[ind * 2]);
let nx2 = points[ind * 2 + 1] - points[prev * 2 + 1];
let ny2 = -(points[ind * 2] - points[prev * 2]);
const D1 = Math.sqrt(nx1 * nx1 + ny1 * ny1);
nx1 /= D1;
ny1 /= D1;
const D2 = Math.sqrt(nx2 * nx2 + ny2 * ny2);
nx2 /= D2;
ny2 /= D2;
let bx = nx1 + nx2;
let by = ny1 + ny2;
const D = bx * nx1 + by * ny1;
if (Math.abs(D) < eps) {
bx = nx1;
by = ny1;
} else {
bx /= D;
by /= D;
}
pn[ind * 2] = bx;
pn[ind * 2 + 1] = by;
}
for (let i = 0; i < triangles.length; i += 3) {
const prev = triangles[i];
const ind = triangles[i + 1];
const next = triangles[i + 2];
const nx1 = points[next * 2 + 1] - points[ind * 2 + 1];
const ny1 = -(points[next * 2] - points[ind * 2]);
const nx2 = points[ind * 2 + 1] - points[prev * 2 + 1];
const ny2 = -(points[ind * 2] - points[prev * 2]);
let j1 = 1;
if (nx1 * ny2 - nx2 * ny1 > 0) {
j1 = 2;
}
for (let j = 0; j < 3; j++) {
const ind2 = triangles[i + j * j1 % 3];
verts.push(points[ind2 * 2], points[ind2 * 2 + 1]);
}
for (let j = 0; j < 3; j++) {
const ind2 = triangles[i + j * j1 % 3];
verts.push(pn[ind2 * 2], pn[ind2 * 2 + 1]);
}
}
}
}
export { PolyBuilder };
//# sourceMappingURL=PolyBuilder.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,69 @@
'use strict';
var _const = require('../core/const.js');
var PolyBuilder = require('./PolyBuilder.js');
class RectangleBuilder {
constructor() {
this._polyBuilder = new PolyBuilder.PolyBuilder();
}
path(graphicsData, _target) {
const rectData = graphicsData.shape;
const x = rectData.x;
const y = rectData.y;
const width = rectData.width;
const height = rectData.height;
const points = graphicsData.points;
points.length = 0;
points.push(
x,
y,
x + width,
y,
x + width,
y + height,
x,
y + height
);
}
line(graphicsData, target) {
const { verts, joints } = target;
const { points } = graphicsData;
const joint = graphicsData.goodJointType();
const len = points.length;
verts.push(points[len - 2], points[len - 1]);
joints.push(_const.JOINT_TYPE.NONE);
for (let i = 0; i < len; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(joint);
}
verts.push(points[0], points[1]);
joints.push(_const.JOINT_TYPE.NONE);
verts.push(points[2], points[3]);
joints.push(_const.JOINT_TYPE.NONE);
}
fill(graphicsData, target) {
const { verts, joints } = target;
const { points, triangles } = graphicsData;
triangles.length = 0;
if (!graphicsData.fillAA) {
verts.push(
points[0],
points[1],
points[2],
points[3],
points[4],
points[5],
points[6],
points[7]
);
joints.push(_const.JOINT_TYPE.FILL, _const.JOINT_TYPE.FILL, _const.JOINT_TYPE.FILL, _const.JOINT_TYPE.FILL);
triangles.push(0, 1, 2, 0, 2, 3);
return;
}
this._polyBuilder.fill(graphicsData, target);
}
}
exports.RectangleBuilder = RectangleBuilder;
//# sourceMappingURL=RectangleBuilder.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RectangleBuilder.js","sources":["../../src/shapes/RectangleBuilder.ts"],"sourcesContent":["import type { Rectangle } 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\nimport { PolyBuilder } from './PolyBuilder';\r\n\r\n/**\r\n * @memberof PIXI.smooth\r\n */\r\nexport class RectangleBuilder implements IShapeBuilder\r\n{\r\n _polyBuilder = new PolyBuilder();\r\n\r\n path(graphicsData: SmoothGraphicsData, _target: BuildData)\r\n {\r\n // --- //\r\n // need to convert points to a nice regular data\r\n //\r\n const rectData = graphicsData.shape as Rectangle;\r\n const x = rectData.x;\r\n const y = rectData.y;\r\n const width = rectData.width;\r\n const height = rectData.height;\r\n const points = graphicsData.points;\r\n\r\n points.length = 0;\r\n\r\n points.push(x, y,\r\n x + width, y,\r\n x + width, y + height,\r\n x, y + height);\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\r\n const joint = graphicsData.goodJointType();\r\n const len = points.length;\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 fill(graphicsData: SmoothGraphicsData, target: BuildData): void\r\n {\r\n const { verts, joints } = target;\r\n const { points, triangles } = graphicsData;\r\n\r\n triangles.length = 0;\r\n\r\n if (!graphicsData.fillAA)\r\n {\r\n verts.push(points[0], points[1],\r\n points[2], points[3],\r\n points[4], points[5],\r\n points[6], points[7]);\r\n\r\n joints.push(JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL);\r\n triangles.push(0, 1, 2, 0, 2, 3);\r\n\r\n return;\r\n }\r\n\r\n this._polyBuilder.fill(graphicsData, target);\r\n }\r\n}\r\n"],"names":["PolyBuilder","JOINT_TYPE"],"mappings":"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"}

View File

@@ -0,0 +1,67 @@
import { JOINT_TYPE } from '../core/const.mjs';
import { PolyBuilder } from './PolyBuilder.mjs';
class RectangleBuilder {
constructor() {
this._polyBuilder = new PolyBuilder();
}
path(graphicsData, _target) {
const rectData = graphicsData.shape;
const x = rectData.x;
const y = rectData.y;
const width = rectData.width;
const height = rectData.height;
const points = graphicsData.points;
points.length = 0;
points.push(
x,
y,
x + width,
y,
x + width,
y + height,
x,
y + height
);
}
line(graphicsData, target) {
const { verts, joints } = target;
const { points } = graphicsData;
const joint = graphicsData.goodJointType();
const len = points.length;
verts.push(points[len - 2], points[len - 1]);
joints.push(JOINT_TYPE.NONE);
for (let i = 0; i < len; i += 2) {
verts.push(points[i], points[i + 1]);
joints.push(joint);
}
verts.push(points[0], points[1]);
joints.push(JOINT_TYPE.NONE);
verts.push(points[2], points[3]);
joints.push(JOINT_TYPE.NONE);
}
fill(graphicsData, target) {
const { verts, joints } = target;
const { points, triangles } = graphicsData;
triangles.length = 0;
if (!graphicsData.fillAA) {
verts.push(
points[0],
points[1],
points[2],
points[3],
points[4],
points[5],
points[6],
points[7]
);
joints.push(JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL);
triangles.push(0, 1, 2, 0, 2, 3);
return;
}
this._polyBuilder.fill(graphicsData, target);
}
}
export { RectangleBuilder };
//# sourceMappingURL=RectangleBuilder.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RectangleBuilder.mjs","sources":["../../src/shapes/RectangleBuilder.ts"],"sourcesContent":["import type { Rectangle } 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\nimport { PolyBuilder } from './PolyBuilder';\r\n\r\n/**\r\n * @memberof PIXI.smooth\r\n */\r\nexport class RectangleBuilder implements IShapeBuilder\r\n{\r\n _polyBuilder = new PolyBuilder();\r\n\r\n path(graphicsData: SmoothGraphicsData, _target: BuildData)\r\n {\r\n // --- //\r\n // need to convert points to a nice regular data\r\n //\r\n const rectData = graphicsData.shape as Rectangle;\r\n const x = rectData.x;\r\n const y = rectData.y;\r\n const width = rectData.width;\r\n const height = rectData.height;\r\n const points = graphicsData.points;\r\n\r\n points.length = 0;\r\n\r\n points.push(x, y,\r\n x + width, y,\r\n x + width, y + height,\r\n x, y + height);\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\r\n const joint = graphicsData.goodJointType();\r\n const len = points.length;\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 fill(graphicsData: SmoothGraphicsData, target: BuildData): void\r\n {\r\n const { verts, joints } = target;\r\n const { points, triangles } = graphicsData;\r\n\r\n triangles.length = 0;\r\n\r\n if (!graphicsData.fillAA)\r\n {\r\n verts.push(points[0], points[1],\r\n points[2], points[3],\r\n points[4], points[5],\r\n points[6], points[7]);\r\n\r\n joints.push(JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL);\r\n triangles.push(0, 1, 2, 0, 2, 3);\r\n\r\n return;\r\n }\r\n\r\n this._polyBuilder.fill(graphicsData, target);\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,21 @@
'use strict';
var CircleBuilder = require('./CircleBuilder.js');
class RoundedRectangleBuilder {
constructor() {
this._circleBuilder = new CircleBuilder.CircleBuilder();
}
path(graphicsData, target) {
this._circleBuilder.path(graphicsData, target);
}
line(graphicsData, target) {
this._circleBuilder.line(graphicsData, target);
}
fill(graphicsData, target) {
this._circleBuilder.fill(graphicsData, target);
}
}
exports.RoundedRectangleBuilder = RoundedRectangleBuilder;
//# sourceMappingURL=RoundedRectangleBuilder.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RoundedRectangleBuilder.js","sources":["../../src/shapes/RoundedRectangleBuilder.ts"],"sourcesContent":["import type { IShapeBuilder } from '../core/IShapeBuilder';\r\nimport type { SmoothGraphicsData } from '../core/SmoothGraphicsData';\r\nimport type { BuildData } from '../core/BuildData';\r\nimport { CircleBuilder } from './CircleBuilder';\r\n\r\n/**\r\n * @memberof PIXI.smooth\r\n */\r\nexport class RoundedRectangleBuilder implements IShapeBuilder\r\n{\r\n _circleBuilder = new CircleBuilder();\r\n\r\n path(graphicsData: SmoothGraphicsData, target: BuildData)\r\n {\r\n this._circleBuilder.path(graphicsData, target);\r\n }\r\n\r\n line(graphicsData: SmoothGraphicsData, target: BuildData): void\r\n {\r\n this._circleBuilder.line(graphicsData, target);\r\n }\r\n\r\n fill(graphicsData: SmoothGraphicsData, target: BuildData): void\r\n {\r\n this._circleBuilder.fill(graphicsData, target);\r\n }\r\n}\r\n"],"names":["CircleBuilder"],"mappings":";;;;AAQO,MAAM,uBACb,CAAA;AAAA,EADO,WAAA,GAAA;AAEH,IAAA,IAAA,CAAA,cAAA,GAAiB,IAAIA,2BAAc,EAAA,CAAA;AAAA,GAAA;AAAA,EAEnC,IAAA,CAAK,cAAkC,MACvC,EAAA;AACI,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,YAAA,EAAc,MAAM,CAAA,CAAA;AAAA,GACjD;AAAA,EAEA,IAAA,CAAK,cAAkC,MACvC,EAAA;AACI,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,YAAA,EAAc,MAAM,CAAA,CAAA;AAAA,GACjD;AAAA,EAEA,IAAA,CAAK,cAAkC,MACvC,EAAA;AACI,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,YAAA,EAAc,MAAM,CAAA,CAAA;AAAA,GACjD;AACJ;;;;"}

View File

@@ -0,0 +1,19 @@
import { CircleBuilder } from './CircleBuilder.mjs';
class RoundedRectangleBuilder {
constructor() {
this._circleBuilder = new CircleBuilder();
}
path(graphicsData, target) {
this._circleBuilder.path(graphicsData, target);
}
line(graphicsData, target) {
this._circleBuilder.line(graphicsData, target);
}
fill(graphicsData, target) {
this._circleBuilder.fill(graphicsData, target);
}
}
export { RoundedRectangleBuilder };
//# sourceMappingURL=RoundedRectangleBuilder.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"RoundedRectangleBuilder.mjs","sources":["../../src/shapes/RoundedRectangleBuilder.ts"],"sourcesContent":["import type { IShapeBuilder } from '../core/IShapeBuilder';\r\nimport type { SmoothGraphicsData } from '../core/SmoothGraphicsData';\r\nimport type { BuildData } from '../core/BuildData';\r\nimport { CircleBuilder } from './CircleBuilder';\r\n\r\n/**\r\n * @memberof PIXI.smooth\r\n */\r\nexport class RoundedRectangleBuilder implements IShapeBuilder\r\n{\r\n _circleBuilder = new CircleBuilder();\r\n\r\n path(graphicsData: SmoothGraphicsData, target: BuildData)\r\n {\r\n this._circleBuilder.path(graphicsData, target);\r\n }\r\n\r\n line(graphicsData: SmoothGraphicsData, target: BuildData): void\r\n {\r\n this._circleBuilder.line(graphicsData, target);\r\n }\r\n\r\n fill(graphicsData: SmoothGraphicsData, target: BuildData): void\r\n {\r\n this._circleBuilder.fill(graphicsData, target);\r\n }\r\n}\r\n"],"names":[],"mappings":";;AAQO,MAAM,uBACb,CAAA;AAAA,EADO,WAAA,GAAA;AAEH,IAAA,IAAA,CAAA,cAAA,GAAiB,IAAI,aAAc,EAAA,CAAA;AAAA,GAAA;AAAA,EAEnC,IAAA,CAAK,cAAkC,MACvC,EAAA;AACI,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,YAAA,EAAc,MAAM,CAAA,CAAA;AAAA,GACjD;AAAA,EAEA,IAAA,CAAK,cAAkC,MACvC,EAAA;AACI,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,YAAA,EAAc,MAAM,CAAA,CAAA;AAAA,GACjD;AAAA,EAEA,IAAA,CAAK,cAAkC,MACvC,EAAA;AACI,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,YAAA,EAAc,MAAM,CAAA,CAAA;AAAA,GACjD;AACJ;;;;"}

View File

@@ -0,0 +1,22 @@
'use strict';
var core = require('@pixi/core');
var CircleBuilder = require('./CircleBuilder.js');
var RectangleBuilder = require('./RectangleBuilder.js');
var RoundedRectangleBuilder = require('./RoundedRectangleBuilder.js');
var PolyBuilder = require('./PolyBuilder.js');
const FILL_COMMANDS = {
[core.SHAPES.POLY]: new PolyBuilder.PolyBuilder(),
[core.SHAPES.CIRC]: new CircleBuilder.CircleBuilder(),
[core.SHAPES.ELIP]: new CircleBuilder.CircleBuilder(),
[core.SHAPES.RECT]: new RectangleBuilder.RectangleBuilder(),
[core.SHAPES.RREC]: new RoundedRectangleBuilder.RoundedRectangleBuilder()
};
exports.CircleBuilder = CircleBuilder.CircleBuilder;
exports.RectangleBuilder = RectangleBuilder.RectangleBuilder;
exports.RoundedRectangleBuilder = RoundedRectangleBuilder.RoundedRectangleBuilder;
exports.PolyBuilder = PolyBuilder.PolyBuilder;
exports.FILL_COMMANDS = FILL_COMMANDS;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["../../src/shapes/index.ts"],"sourcesContent":["import { SHAPES } from '@pixi/core';\r\nimport { IShapeBuilder } from '../core/IShapeBuilder';\r\nimport { CircleBuilder } from './CircleBuilder';\r\nimport { RectangleBuilder } from './RectangleBuilder';\r\nimport { RoundedRectangleBuilder } from './RoundedRectangleBuilder';\r\nimport { PolyBuilder } from './PolyBuilder';\r\n\r\nexport const FILL_COMMANDS: Record<SHAPES, IShapeBuilder> = {\r\n [SHAPES.POLY]: new PolyBuilder(),\r\n [SHAPES.CIRC]: new CircleBuilder(),\r\n [SHAPES.ELIP]: new CircleBuilder(),\r\n [SHAPES.RECT]: new RectangleBuilder(),\r\n [SHAPES.RREC]: new RoundedRectangleBuilder()\r\n};\r\n\r\nexport { CircleBuilder, RectangleBuilder, RoundedRectangleBuilder, PolyBuilder };\r\n"],"names":["SHAPES","PolyBuilder","CircleBuilder","RectangleBuilder","RoundedRectangleBuilder"],"mappings":";;;;;;;;AAOO,MAAM,aAA+C,GAAA;AAAA,EACxD,CAACA,WAAA,CAAO,IAAI,GAAG,IAAIC,uBAAY,EAAA;AAAA,EAC/B,CAACD,WAAA,CAAO,IAAI,GAAG,IAAIE,2BAAc,EAAA;AAAA,EACjC,CAACF,WAAA,CAAO,IAAI,GAAG,IAAIE,2BAAc,EAAA;AAAA,EACjC,CAACF,WAAA,CAAO,IAAI,GAAG,IAAIG,iCAAiB,EAAA;AAAA,EACpC,CAACH,WAAA,CAAO,IAAI,GAAG,IAAII,+CAAwB,EAAA;AAC/C;;;;;;;;"}

View File

@@ -0,0 +1,16 @@
import { SHAPES } from '@pixi/core';
import { CircleBuilder } from './CircleBuilder.mjs';
import { RectangleBuilder } from './RectangleBuilder.mjs';
import { RoundedRectangleBuilder } from './RoundedRectangleBuilder.mjs';
import { PolyBuilder } from './PolyBuilder.mjs';
const FILL_COMMANDS = {
[SHAPES.POLY]: new PolyBuilder(),
[SHAPES.CIRC]: new CircleBuilder(),
[SHAPES.ELIP]: new CircleBuilder(),
[SHAPES.RECT]: new RectangleBuilder(),
[SHAPES.RREC]: new RoundedRectangleBuilder()
};
export { CircleBuilder, FILL_COMMANDS, PolyBuilder, RectangleBuilder, RoundedRectangleBuilder };
//# sourceMappingURL=index.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","sources":["../../src/shapes/index.ts"],"sourcesContent":["import { SHAPES } from '@pixi/core';\r\nimport { IShapeBuilder } from '../core/IShapeBuilder';\r\nimport { CircleBuilder } from './CircleBuilder';\r\nimport { RectangleBuilder } from './RectangleBuilder';\r\nimport { RoundedRectangleBuilder } from './RoundedRectangleBuilder';\r\nimport { PolyBuilder } from './PolyBuilder';\r\n\r\nexport const FILL_COMMANDS: Record<SHAPES, IShapeBuilder> = {\r\n [SHAPES.POLY]: new PolyBuilder(),\r\n [SHAPES.CIRC]: new CircleBuilder(),\r\n [SHAPES.ELIP]: new CircleBuilder(),\r\n [SHAPES.RECT]: new RectangleBuilder(),\r\n [SHAPES.RREC]: new RoundedRectangleBuilder()\r\n};\r\n\r\nexport { CircleBuilder, RectangleBuilder, RoundedRectangleBuilder, PolyBuilder };\r\n"],"names":[],"mappings":";;;;;;AAOO,MAAM,aAA+C,GAAA;AAAA,EACxD,CAAC,MAAA,CAAO,IAAI,GAAG,IAAI,WAAY,EAAA;AAAA,EAC/B,CAAC,MAAA,CAAO,IAAI,GAAG,IAAI,aAAc,EAAA;AAAA,EACjC,CAAC,MAAA,CAAO,IAAI,GAAG,IAAI,aAAc,EAAA;AAAA,EACjC,CAAC,MAAA,CAAO,IAAI,GAAG,IAAI,gBAAiB,EAAA;AAAA,EACpC,CAAC,MAAA,CAAO,IAAI,GAAG,IAAI,uBAAwB,EAAA;AAC/C;;;;"}