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

BBXConnect() private method

private BBXConnect ( int min_dist, int char_width, int labels, int label_width, int label_height ) : void
min_dist int
char_width int
labels int
label_width int
label_height int
return void
        private void BBXConnect(int min_dist, int char_width, int[] labels, int label_width, int label_height)
        {
            int char_count = _char_list.Count;

            for (int i = 0; i < char_count; i++)
            {
                if (_char_list[i].bbx.Width < char_width / 2 && _char_list[i].bbx.Height < char_width / 2) continue;
                for (int j = i + 1; j < char_count; j++)
                {

                    if (_char_list[j].bbx.Width < char_width / 2 && _char_list[j].bbx.Height < char_width / 2) continue;

                    int x1 = _char_list[i].bbx.X;
                    int y1 = _char_list[i].bbx.Y;
                    bool overlap = false;
                    if (_char_list[i].bbx.IntersectsWith(_char_list[j].bbx))
                        overlap = true;
                    else
                    {
                        Rectangle rect = new Rectangle(x1 - min_dist, y1 - min_dist, _char_list[i].bbx.Width + min_dist * 2, _char_list[i].bbx.Height + min_dist * 2);
                        if (rect.IntersectsWith(_char_list[j].bbx))
                            overlap = true;
                    }

                    if (overlap)//(dist <= min_dist)
                    {
                        _char_list[i].neighbors.Add(j);
                        _char_list[j].neighbors.Add(i);
                        _char_list[i].neighbor_count++;
                        _char_list[j].neighbor_count++;
                    }
                }
            }
            for (int i = 0; i < char_count; i++)
            {
                if (_char_list[i].neighbors.Count > 2) _needsplit = true;
                if (_debug)
                {
                    Console.Write("NE: " + i + "--- ");

                    for (int j = 0; j < _char_list[i].neighbors.Count; j++)
                        Console.Write(_char_list[i].neighbors[j] + " ");
                    Console.WriteLine();
                }
            }
        }