public VectorPathBuilder Ellipse(float rx, float ry, float cx, float cy, float degStart, float deggEnd)
        {
            var ell = new EllipsePieceSegment(new FPoint(cx * scale, cy * scale), rx * scale, ry * scale, degStart * FloatMath.DegRad, deggEnd * FloatMath.DegRad);

            segments.Add(ell);

            current = ell.GetEnd();

            return(this);
        }
        public VectorPathBuilder FullEllipseCCW(float rx, float ry, float cx, float cy)
        {
            var ell = new EllipsePieceSegment(new FPoint(cx * scale, cy * scale), rx * scale, ry * scale, FloatMath.TAU, 0, dir: CircularDirection.CCW);

            segments.Add(ell);

            current = ell.GetEnd();

            return(this);
        }
		public VectorPathBuilder Ellipse(float rx, float ry, float cx, float cy, float degStart, float deggEnd)
		{
			var ell = new EllipsePieceSegment(new FPoint(cx * scale, cy * scale), rx * scale, ry * scale, degStart * FloatMath.DegRad, deggEnd * FloatMath.DegRad);

			segments.Add(ell);

			current = ell.GetEnd();

			return this;
		}
        public VectorPathBuilder FullEllipse(float rx, float ry, float cx, float cy)
        {
            var ell = new EllipsePieceSegment(new FPoint(cx * scale, cy * scale), rx * scale, ry * scale);

            segments.Add(ell);

            current = ell.GetEnd();

            return(this);
        }
		public VectorPathBuilder FullEllipse(float rx, float ry, float cx, float cy)
		{
			var ell = new EllipsePieceSegment(new FPoint(cx * scale, cy * scale), rx * scale, ry * scale);

			segments.Add(ell);

			current = ell.GetEnd();

			return this;
		}