iTextSharp.text.pdf.TrueTypeFont.CompactRanges C# (CSharp) Метод

CompactRanges() защищенный статический Метод

protected static CompactRanges ( List ranges ) : int[]
ranges List
Результат int[]
        protected static int[] CompactRanges(List<int[]> ranges)
        {
            List<int[]> simp = new List<int[]>();
            for (int k = 0; k < ranges.Count; ++k) {
                int[] r = ranges[k];
                for (int j = 0; j < r.Length; j += 2) {
                    simp.Add(new int[]{Math.Max(0, Math.Min(r[j], r[j + 1])), Math.Min(0xffff, Math.Max(r[j], r[j + 1]))});
                }
            }
            for (int k1 = 0; k1 < simp.Count - 1; ++k1) {
                for (int k2 = k1 + 1; k2 < simp.Count; ++k2) {
                    int[] r1 = simp[k1];
                    int[] r2 = simp[k2];
                    if ((r1[0] >= r2[0] && r1[0] <= r2[1]) || (r1[1] >= r2[0] && r1[0] <= r2[1])) {
                        r1[0] = Math.Min(r1[0], r2[0]);
                        r1[1] = Math.Max(r1[1], r2[1]);
                        simp.RemoveAt(k2);
                        --k2;
                    }
                }
            }
            int[] s = new int[simp.Count * 2];
            for (int k = 0; k < simp.Count; ++k) {
                int[] r = simp[k];
                s[k * 2] = r[0];
                s[k * 2 + 1] = r[1];
            }
            return s;
        }