Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
else if (data.type === SHAPES.RECT)
{
if (fillStyle.visible)
{
context.globalAlpha = fillStyle.alpha * worldAlpha;
context.fillStyle = `#${(`00000${(fillColor | 0).toString(16)}`).substr(-6)}`;
context.fillRect(shape.x, shape.y, shape.width, shape.height);
}
if (lineStyle.visible)
{
context.globalAlpha = lineStyle.alpha * worldAlpha;
context.strokeStyle = `#${(`00000${(lineColor | 0).toString(16)}`).substr(-6)}`;
context.strokeRect(shape.x, shape.y, shape.width, shape.height);
}
}
else if (data.type === SHAPES.CIRC)
{
// TODO - need to be Undefined!
context.beginPath();
context.arc(shape.x, shape.y, shape.radius, 0, 2 * Math.PI);
context.closePath();
if (fillStyle.visible)
{
context.globalAlpha = fillStyle.alpha * worldAlpha;
context.fillStyle = `#${(`00000${(fillColor | 0).toString(16)}`).substr(-6)}`;
context.fill();
}
if (lineStyle.visible)
{
context.globalAlpha = lineStyle.alpha * worldAlpha;
{
context.lineTo(points[j * 2], points[(j * 2) + 1]);
}
// if the first and last point are the same close the path - much neater :)
if (points[0] === points[points.length - 2] && points[1] === points[points.length - 1])
{
context.closePath();
}
}
else if (data.type === SHAPES.RECT)
{
context.rect(shape.x, shape.y, shape.width, shape.height);
context.closePath();
}
else if (data.type === SHAPES.CIRC)
{
// TODO - need to be Undefined!
context.arc(shape.x, shape.y, shape.radius, 0, 2 * Math.PI);
context.closePath();
}
else if (data.type === SHAPES.ELIP)
{
// ellipse code taken from: http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas
const w = shape.width * 2;
const h = shape.height * 2;
const x = shape.x - (w / 2);
const y = shape.y - (h / 2);
const kappa = 0.5522848;
if (curMatrix !== nextMatrix)
{
if (!sequenceBounds.isEmpty())
{
bounds.addBoundsMatrix(sequenceBounds, curMatrix);
sequenceBounds.clear();
}
curMatrix = nextMatrix;
}
if (type === SHAPES.RECT || type === SHAPES.RREC)
{
sequenceBounds.addFramePad(shape.x, shape.y, shape.x + shape.width, shape.y + shape.height,
lineWidth, lineWidth);
}
else if (type === SHAPES.CIRC)
{
sequenceBounds.addFramePad(shape.x, shape.y, shape.x, shape.y,
shape.radius + lineWidth, shape.radius + lineWidth);
}
else if (type === SHAPES.ELIP)
{
sequenceBounds.addFramePad(shape.x, shape.y, shape.x, shape.y,
shape.width + lineWidth, shape.height + lineWidth);
}
else
{
// adding directly to the bounds
bounds.addVerticesMatrix(curMatrix, shape.points, 0, shape.points.length, lineWidth, lineWidth);
}
}
build(graphicsData)
{
// need to convert points to a nice regular data
const circleData = graphicsData.shape;
const points = graphicsData.points;
const x = circleData.x;
const y = circleData.y;
let width;
let height;
points.length = 0;
// TODO - bit hacky??
if (graphicsData.type === SHAPES.CIRC)
{
width = circleData.radius;
height = circleData.radius;
}
else
{
width = circleData.width;
height = circleData.height;
}
if (width === 0 || height === 0)
{
return;
}
let totalSegs = Math.floor(30 * Math.sqrt(circleData.radius))
export default function buildCircle(graphicsData, webGLData, webGLDataNativeLines)
{
// need to convert points to a nice regular data
const circleData = graphicsData.shape;
const x = circleData.x;
const y = circleData.y;
let width;
let height;
// TODO - bit hacky??
if (graphicsData.type === SHAPES.CIRC)
{
width = circleData.radius;
height = circleData.radius;
}
else
{
width = circleData.width;
height = circleData.height;
}
if (width === 0 || height === 0)
{
return;
}
const totalSegs = Math.floor(30 * Math.sqrt(circleData.radius))
{
context.lineTo(points[j * 2], points[(j * 2) + 1]);
}
// if the first and last point are the same close the path - much neater :)
if (points[0] === points[points.length - 2] && points[1] === points[points.length - 1])
{
context.closePath();
}
}
else if (data.type === SHAPES.RECT)
{
context.rect(shape.x, shape.y, shape.width, shape.height);
context.closePath();
}
else if (data.type === SHAPES.CIRC)
{
// TODO - need to be Undefined!
context.arc(shape.x, shape.y, shape.radius, 0, 2 * Math.PI);
context.closePath();
}
else if (data.type === SHAPES.ELIP)
{
// ellipse code taken from: http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas
const w = shape.width * 2;
const h = shape.height * 2;
const x = shape.x - (w / 2);
const y = shape.y - (h / 2);
const kappa = 0.5522848;
export * from './ArcUtils';
export * from './BezierUtils';
export * from './QuadraticUtils';
export * from './BatchPart';
import { SHAPES } from '@pixi/math';
/**
* Map of fill commands for each shape type.
*
* @memberof PIXI.graphicsUtils
* @member {Object}
*/
export const FILL_COMMANDS = {
[SHAPES.POLY]: buildPoly,
[SHAPES.CIRC]: buildCircle,
[SHAPES.ELIP]: buildCircle,
[SHAPES.RECT]: buildRectangle,
[SHAPES.RREC]: buildRoundedRectangle,
};
/**
* Batch pool, stores unused batches for preventing allocations.
*
* @memberof PIXI.graphicsUtils
* @type {Array}
*/
export const BATCH_POOL = [];
/**
* Draw call pool, stores unused draw calls for preventing allocations.
*
shape = data.shape;
if (type === SHAPES.RECT || type === SHAPES.RREC)
{
x = shape.x - (lineWidth / 2);
y = shape.y - (lineWidth / 2);
w = shape.width + lineWidth;
h = shape.height + lineWidth;
minX = x < minX ? x : minX;
maxX = x + w > maxX ? x + w : maxX;
minY = y < minY ? y : minY;
maxY = y + h > maxY ? y + h : maxY;
}
else if (type === SHAPES.CIRC)
{
x = shape.x;
y = shape.y;
w = shape.radius + (lineWidth / 2);
h = shape.radius + (lineWidth / 2);
minX = x - w < minX ? x - w : minX;
maxX = x + w > maxX ? x + w : maxX;
minY = y - h < minY ? y - h : minY;
maxY = y + h > maxY ? y + h : maxY;
}
else if (type === SHAPES.ELIP)
{
x = shape.x;
y = shape.y;