From 13d8263fa34a2da2f92b8609bf50b1a292d50d6d Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Mon, 25 Jan 2016 00:58:57 +0300 Subject: [PATCH] Added CubicBezierCurveRelative implementation option for path rendering. Fixed ReadDouble (whitespaces processing). --- src/Perspex.SceneGraph/Media/PathMarkupParser.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Perspex.SceneGraph/Media/PathMarkupParser.cs b/src/Perspex.SceneGraph/Media/PathMarkupParser.cs index e02f65caba..da56f1af6e 100644 --- a/src/Perspex.SceneGraph/Media/PathMarkupParser.cs +++ b/src/Perspex.SceneGraph/Media/PathMarkupParser.cs @@ -150,6 +150,15 @@ namespace Perspex.Media break; } + case Command.CubicBezierCurveRelative: + { + Point point1 = ReadRelativePoint(reader, point); + Point point2 = ReadRelativePoint(reader, point); + _context.BezierTo(point, point1, point2); + point = point2; + break; + } + case Command.Close: _context.EndFigure(true); openFigure = false; @@ -202,8 +211,9 @@ namespace Perspex.Media } } - private static double ReadDouble(TextReader reader) + private static double ReadDouble(StringReader reader) { + ReadWhitespace(reader); // TODO: Handle Infinity, NaN and scientific notation. StringBuilder b = new StringBuilder(); bool readSign = false;