using System;
using System.Collections.Generic;
using System.Text;

namespace Svg.Pathing
{
    public sealed class SvgClosePathSegment : SvgPathSegment
    {
        public override void AddToPath(System.Drawing.Drawing2D.GraphicsPath graphicsPath)
        {
            // Important for custom line caps.  Force the path the close with an explicit line, not just an implicit close of the figure.
            if (graphicsPath.PointCount > 0 && !graphicsPath.PathPoints[0].Equals(graphicsPath.PathPoints[graphicsPath.PathPoints.Length - 1]))
            {
                int i = graphicsPath.PathTypes.Length - 1;
                while (i >= 0 && graphicsPath.PathTypes[i] > 0) i--;
                if (i < 0) i = 0;
                graphicsPath.AddLine(graphicsPath.PathPoints[graphicsPath.PathPoints.Length - 1], graphicsPath.PathPoints[i]);
            }
            graphicsPath.CloseFigure();
        }

        public override string ToString()
        {
            return "z";
        }

    }
}