/**
 * @license jCanvas Donuts
 * Copyright 2013-2024 Caleb Evans
 * Released under the MIT license
 */
import $ from "jquery";

const PI = Math.PI;

$.jCanvas.extend({
	name: "drawDonut",
	type: "donut",
	props: {
		holeSize: 0.5,
	},
	fn: function (ctx, params) {
		// Enable shape transformation
		$.jCanvas.transformShape(this, ctx, params);
		ctx.beginPath();
		// Draw outer circle
		ctx.arc(params.x, params.y, params.radius, 0, 2 * PI, false);
		// If donut has a hole
		if (params.holeSize > 0) {
			// Draw inner hole
			ctx.moveTo(params.x + params.radius * params.holeSize, params.y);
			ctx.arc(
				params.x,
				params.y,
				params.radius * params.holeSize,
				0,
				2 * PI,
				true
			);
		}
		// Enable jCanvas events
		$.jCanvas.detectEvents(this, ctx, params);
		$.jCanvas.closePath(this, ctx, params);
	},
});
