Esempio n. 1
0
 private static void ReplacePolySegments(PathSegmentCollection pathSegments)
 {
     for (int index1 = 0; index1 < pathSegments.Count; ++index1)
     {
         PathSegment     pathSegment     = pathSegments[index1];
         PolyLineSegment polyLineSegment = pathSegment as PolyLineSegment;
         if (polyLineSegment != null)
         {
             pathSegments.RemoveAt(index1);
             for (int index2 = 0; index2 < polyLineSegment.Points.Count; ++index2)
             {
                 LineSegment lineSegment = PathSegmentUtilities.CreateLineSegment(polyLineSegment.Points[index2], polyLineSegment.IsStroked);
                 pathSegments.Insert(index1, (PathSegment)lineSegment);
                 ++index1;
             }
             --index1;
         }
         PolyQuadraticBezierSegment quadraticBezierSegment1 = pathSegment as PolyQuadraticBezierSegment;
         if (quadraticBezierSegment1 != null)
         {
             pathSegments.RemoveAt(index1);
             int index2 = 0;
             while (index2 < quadraticBezierSegment1.Points.Count - 1)
             {
                 QuadraticBezierSegment quadraticBezierSegment2 = PathSegmentUtilities.CreateQuadraticBezierSegment(quadraticBezierSegment1.Points[index2], quadraticBezierSegment1.Points[index2 + 1], quadraticBezierSegment1.IsStroked);
                 pathSegments.Insert(index1, (PathSegment)quadraticBezierSegment2);
                 ++index1;
                 index2 += 2;
             }
             --index1;
         }
         PolyBezierSegment polyBezierSegment = pathSegment as PolyBezierSegment;
         if (polyBezierSegment != null)
         {
             pathSegments.RemoveAt(index1);
             int index2 = 0;
             while (index2 < polyBezierSegment.Points.Count - 2)
             {
                 BezierSegment bezierSegment = PathSegmentUtilities.CreateBezierSegment(polyBezierSegment.Points[index2], polyBezierSegment.Points[index2 + 1], polyBezierSegment.Points[index2 + 2], polyBezierSegment.IsStroked);
                 pathSegments.Insert(index1, (PathSegment)bezierSegment);
                 ++index1;
                 index2 += 3;
             }
             --index1;
         }
     }
 }