var radius = vm.radius;
var xOffset,
- yOffset;
+ yOffset,
+ beginPath = "beginPath",
+ moveTo = "moveTo",
+ lineTo = "lineTo",
+ closePath = "closePath",
+ fillRect = "fillRect",
+ strokeRect = "strokeRect";
switch (pointStyle) {
// Default includes circle
default:
- ctx.beginPath();
+ ctx[beginPath]();
ctx.arc(x, y, radius, 0, Math.PI * 2);
- ctx.closePath();
+ ctx[closePath]();
ctx.fill();
break;
case 'triangle':
- ctx.beginPath();
+ ctx[beginPath]();
var edgeLength = 3 * radius / Math.sqrt(3);
var height = edgeLength * Math.sqrt(3) / 2;
- ctx.moveTo(x - edgeLength / 2, y + height / 3);
- ctx.lineTo(x + edgeLength / 2, y + height / 3);
- ctx.lineTo(x, y - 2 * height / 3);
- ctx.closePath();
+ ctx[moveTo](x - edgeLength / 2, y + height / 3);
+ ctx[lineTo](x + edgeLength / 2, y + height / 3);
+ ctx[lineTo](x, y - 2 * height / 3);
+ ctx[closePath]();
ctx.fill();
break;
case 'rect':
- ctx.fillRect(x - 1 / Math.SQRT2 * radius, y - 1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
- ctx.strokeRect(x - 1 / Math.SQRT2 * radius, y - 1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
+ ctx[fillRect](x - 1 / Math.SQRT2 * radius, y - 1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
+ ctx[strokeRect](x - 1 / Math.SQRT2 * radius, y - 1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
break;
case 'rectRot':
ctx.translate(x, y);
ctx.rotate(Math.PI / 4);
- ctx.fillRect(-1 / Math.SQRT2 * radius, -1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
- ctx.strokeRect(-1 / Math.SQRT2 * radius, -1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
+ ctx[fillRect](-1 / Math.SQRT2 * radius, -1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
+ ctx[strokeRect](-1 / Math.SQRT2 * radius, -1 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius, 2 / Math.SQRT2 * radius);
ctx.setTransform(1, 0, 0, 1, 0, 0);
break;
case 'cross':
- ctx.beginPath();
- ctx.moveTo(x, y + radius);
- ctx.lineTo(x, y - radius);
- ctx.moveTo(x - radius, y);
- ctx.lineTo(x + radius, y);
- ctx.closePath();
+ ctx[beginPath]();
+ ctx[moveTo](x, y + radius);
+ ctx[lineTo](x, y - radius);
+ ctx[moveTo](x - radius, y);
+ ctx[lineTo](x + radius, y);
+ ctx[closePath]();
break;
case 'crossRot':
- ctx.beginPath();
+ ctx[beginPath]();
xOffset = Math.cos(Math.PI / 4) * radius;
yOffset = Math.sin(Math.PI / 4) * radius;
- ctx.moveTo(x - xOffset, y - yOffset);
- ctx.lineTo(x + xOffset, y + yOffset);
- ctx.moveTo(x - xOffset, y + yOffset);
- ctx.lineTo(x + xOffset, y - yOffset);
- ctx.closePath();
+ ctx[moveTo](x - xOffset, y - yOffset);
+ ctx[lineTo](x + xOffset, y + yOffset);
+ ctx[moveTo](x - xOffset, y + yOffset);
+ ctx[lineTo](x + xOffset, y - yOffset);
+ ctx[closePath]();
break;
case 'star':
- ctx.beginPath();
- ctx.moveTo(x, y + radius);
- ctx.lineTo(x, y - radius);
- ctx.moveTo(x - radius, y);
- ctx.lineTo(x + radius, y);
+ ctx[beginPath]();
+ ctx[moveTo](x, y + radius);
+ ctx[lineTo](x, y - radius);
+ ctx[moveTo](x - radius, y);
+ ctx[lineTo](x + radius, y);
xOffset = Math.cos(Math.PI / 4) * radius;
yOffset = Math.sin(Math.PI / 4) * radius;
- ctx.moveTo(x - xOffset, y - yOffset);
- ctx.lineTo(x + xOffset, y + yOffset);
- ctx.moveTo(x - xOffset, y + yOffset);
- ctx.lineTo(x + xOffset, y - yOffset);
- ctx.closePath();
+ ctx[moveTo](x - xOffset, y - yOffset);
+ ctx[lineTo](x + xOffset, y + yOffset);
+ ctx[moveTo](x - xOffset, y + yOffset);
+ ctx[lineTo](x + xOffset, y - yOffset);
+ ctx[closePath]();
break;
case 'line':
- ctx.beginPath();
- ctx.moveTo(x - radius, y);
- ctx.lineTo(x + radius, y);
- ctx.closePath();
+ ctx[beginPath]();
+ ctx[moveTo](x - radius, y);
+ ctx[lineTo](x + radius, y);
+ ctx[closePath]();
break;
case 'dash':
- ctx.beginPath();
- ctx.moveTo(x, y);
- ctx.lineTo(x + radius, y);
- ctx.closePath();
+ ctx[beginPath]();
+ ctx[moveTo](x, y);
+ ctx[lineTo](x + radius, y);
+ ctx[closePath]();
break;
}