Strabo.Core.TextDetection.TextString.SplitIt C# (CSharp) Method

SplitIt() private method

private SplitIt ( ) : void
return void
        private void SplitIt()
        {
            if (_debug) Console.WriteLine("************ SplitIt *****************");
            List<int> tmp_list4one = new List<int>();
            List<List<int>> tmp_list4two = new List<List<int>>();
            for (int i = 0; i < _char_list.Count; i++)
                if (_char_list[i].neighbor_count > 2)
                    _char_list[i].split_here = true;
            for (int i = 0; i < _char_list.Count; i++)
            {
                if (_char_list[i].sizefilter_included == false)
                {
                    tmp_list4one.Add(i);
                    if (_debug) Console.WriteLine(" Add " + i + " to one");
                    continue;
                }

                int next = FindNextNeighbor(i);

                if (next == -1 && _char_list[i].included != true) // no neighbor
                {
                    tmp_list4one.Add(i);
                    if (_debug) Console.WriteLine(" Add " + i + " to one");
                    continue;
                }
                while (next != -1)
                {
                    List<int> substring_list = new List<int>();
                    if (_debug) Console.WriteLine("     Start to trace from:" + i + " to " + next);

                    substring_list.Add(i);
                    substring_list.Add(next);

                    _char_list[i].neighbors.Remove(next);
                    _char_list[next].neighbors.Remove(i);
                    if (_char_list[next].split_here || _char_list[i].split_here)
                        TraceCharacters(substring_list, i, next, _larger_angle_threshold); // strict
                    else TraceCharacters(substring_list, i, next, _smaller_angle_threshold);
                    if (_char_list[next].split_here || _char_list[i].split_here)
                        TraceCharacters(substring_list, next, i, _larger_angle_threshold);
                    else TraceCharacters(substring_list, next, i, _smaller_angle_threshold);

                    if (substring_list.Count == 2)
                    {
                        tmp_list4two.Add(substring_list);
                        if (_debug) Console.WriteLine("                 Add tmp2ts:     " + substring_list[0] + "   " + substring_list[1]);
                    }
                    else
                        AddSubstring(substring_list);
                    next = FindNextNeighbor(i);
                }
            }

            MergeTwo(tmp_list4two);
            MergeOne(tmp_list4one);
        }