import e from "../noop.js";
import { point as t } from "./basis.js";
//#region ../../node_modules/d3-shape/src/curve/basisClosed.js
function n(e) {
	this._context = e;
}
n.prototype = {
	areaStart: e,
	areaEnd: e,
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN, this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 1:
				this._context.moveTo(this._x2, this._y2), this._context.closePath();
				break;
			case 2:
				this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3), this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3), this._context.closePath();
				break;
			case 3:
				this.point(this._x2, this._y2), this.point(this._x3, this._y3), this.point(this._x4, this._y4);
				break;
		}
	},
	point: function(e, n) {
		switch (e = +e, n = +n, this._point) {
			case 0:
				this._point = 1, this._x2 = e, this._y2 = n;
				break;
			case 1:
				this._point = 2, this._x3 = e, this._y3 = n;
				break;
			case 2:
				this._point = 3, this._x4 = e, this._y4 = n, this._context.moveTo((this._x0 + 4 * this._x1 + e) / 6, (this._y0 + 4 * this._y1 + n) / 6);
				break;
			default:
				t(this, e, n);
				break;
		}
		this._x0 = this._x1, this._x1 = e, this._y0 = this._y1, this._y1 = n;
	}
};
function r(e) {
	return new n(e);
}
//#endregion
export { r as default };
