コード例 #1
0
        /// <summary>
        /// Parses one or more smooth quadratic path commands in the format endx,endy
        /// </summary>
        /// <param name="path"></param>
        /// <param name="cmd"></param>
        /// <param name="absolute"></param>
        /// <param name="args"></param>
        /// <remarks>The handle is inferred as a reflection of the previous handle</remarks>
        private void ParseSVGSmoothQuadraticCommand(PDFGraphicsPath path, char cmd, bool absolute, string[] args)
        {
            PDFUnit endPtX, endPtY;
            int     index = 0;

            while (index < args.Length)
            {
                if (index == 0 || !string.IsNullOrEmpty(args[index]))
                {
                    if (!AssertParseUnit(args, ref index, cmd, out endPtX))
                    {
                        return;
                    }
                    if (!AssertParseUnit(args, ref index, cmd, out endPtY))
                    {
                        return;
                    }

                    if (absolute)
                    {
                        path.SmoothQuadraticCurveTo(new PDFPoint(endPtX, endPtY));
                    }
                    else
                    {
                        path.SmoothQuadraticCurveFor(new PDFPoint(endPtX, endPtY));
                    }
                }
                else if (string.IsNullOrEmpty(args[index]))
                {
                    index++;
                }
            }
        }