private void GetBlockAfterMerge(List <Line2D> orderAddedLines, List <Rectangle2D> minimumRectangles, List <Line2D> leftLines) { List <Line2D> remainLines = new List <Line2D>(); Merge(orderAddedLines, minimumRectangles, leftLines); remainLines.AddRange(leftLines); GraphicAlgorithm.MergeLine(leftLines); GraphicAlgorithm.OrderLinesByLength(leftLines); if (remainLines.Count != leftLines.Count) { orderAddedLines = new List <Line2D>(leftLines); GetBlockAfterMerge(orderAddedLines, minimumRectangles, leftLines); } }