Пример #1
0
 private static List<DashLineSegment2D> GroupCloseDashSegment(DashLineSegment2D[] segments)
 {
     var chunks = new List<DashLineSegment2D>();
     foreach (var segment in segments)
     {
         var isMerged = false;
         foreach (var chunk in chunks)
         {
             if (SegmentHelper.DistanceClose(chunk.AsSolid, segment.AsSolid))
             {
                 var merged = new DashLineSegment2D {Elements = chunk.Elements.Union(segment.Elements).ToArray()};
                 chunks.Remove(chunk);
                 chunks.Add(merged);
                 isMerged = true;
                 break;
             }
         }
         if (!isMerged)
             chunks.Add(segment);
     }
     return segments.Length == chunks.Count ? chunks : GroupCloseDashSegment(chunks.ToArray());
 }
Пример #2
0
 public void AddDashLine(DashLineSegment2D dashSegment)
 {
     AddLine(dashSegment.AsSolid);
 }