private PathPointType GetFirstPointType()
{
/* check for a new figure flag or an empty path */
if (start_new_fig || (points.Count == 0))
return PathPointType.Start;
/* check if the previous point is a closure */
var type = types [types.Count - 1];
if ((type & (byte)PathPointType.CloseSubpath) != 0)
return PathPointType.Start;
else
return PathPointType.Line;
}