private void ExecuteIPath(XmlElement element, Collection<IPath> paths)
{
switch(element.Name[0])
{
case 'a':
{
switch(element.Name[3])
{
case 'A':
{
ExecutePathArcAbs(element, paths);
return;
}
case 'R':
{
ExecutePathArcRel(element, paths);
return;
}
}
break;
}
case 'c':
{
switch(element.Name[7])
{
case 'A':
{
ExecutePathCurveToAbs(element, paths);
return;
}
case 'R':
{
ExecutePathCurveToRel(element, paths);
return;
}
}
break;
}
case 'l':
{
switch(element.Name[6])
{
case 'A':
{
ExecutePathLineToAbs(element, paths);
return;
}
case 'H':
{
switch(element.Name[16])
{
case 'A':
{
ExecutePathLineToHorizontalAbs(element, paths);
return;
}
case 'R':
{
ExecutePathLineToHorizontalRel(element, paths);
return;
}
}
break;
}
case 'R':
{
ExecutePathLineToRel(element, paths);
return;
}
case 'V':
{
switch(element.Name[14])
{
case 'A':
{
ExecutePathLineToVerticalAbs(element, paths);
return;
}
case 'R':
{
ExecutePathLineToVerticalRel(element, paths);
return;
}
}
break;
}
}
break;
}
case 'm':
{
switch(element.Name[6])
{
case 'A':
{
ExecutePathMoveToAbs(element, paths);
return;
}
case 'R':
{
ExecutePathMoveToRel(element, paths);
return;
}
}
break;
}
case 'q':
{
switch(element.Name[16])
{
case 'A':
{
ExecutePathQuadraticCurveToAbs(element, paths);
return;
}
case 'R':
{
ExecutePathQuadraticCurveToRel(element, paths);
return;
}
}
break;
}
case 's':
{
switch(element.Name[6])
{
case 'C':
{
switch(element.Name[13])
{
case 'A':
{
ExecutePathSmoothCurveToAbs(element, paths);
return;
}
case 'R':
{
ExecutePathSmoothCurveToRel(element, paths);
return;
}
}
break;
}
case 'Q':
{
switch(element.Name[22])
{
case 'A':
{
ExecutePathSmoothQuadraticCurveToAbs(element, paths);
return;
}
case 'R':
{
ExecutePathSmoothQuadraticCurveToRel(element, paths);
return;
}
}
break;
}
}
break;
}
}
throw new NotSupportedException(element.Name);
}
private void ExecutePathArcAbs(XmlElement element, Collection<IPath> paths)