in FigmaSharp.Views/FigmaSharp.Views.Cocoa/Graphics/PathBuilder.cs [278:363]
private void HandleCommand(char command)
{
if (command == 'M')
{
MoveTo(false);
}
else if (command == 'm')
{
MoveTo(true);
if (_lastCommand == '~')
{
command = 'm';
}
}
else if (command == 'z' || command == 'Z')
{
ClosePath();
}
else if (command == 'L')
{
LineTo(false);
}
else if (command == 'l')
{
LineTo(true);
}
else if (command == 'Q')
{
QuadTo(false);
}
else if (command == 'q')
{
QuadTo(true);
}
else if (command == 'C')
{
CurveTo(false);
}
else if (command == 'c')
{
CurveTo(true);
}
else if (command == 'S')
{
SmoothCurveTo(false);
}
else if (command == 's')
{
SmoothCurveTo(true);
}
else if (command == 'A')
{
ArcTo(false);
}
else if (command == 'a')
{
ArcTo(true);
}
else if (command == 'H')
{
HorizontalLineTo(false);
}
else if (command == 'h')
{
HorizontalLineTo(true);
}
else if (command == 'V')
{
VerticalLineTo(false);
}
else if (command == 'v')
{
VerticalLineTo(true);
}
else
{
LoggingService.LogWarning("Don't know how to handle the path command: " + command);
}
if (!(command == 'C' || command == 'c' || command == 's' || command == 'S'))
{
_lastCurveControlPoint = null;
}
_lastCommand = command;
}