AddChar() 공개 메소드

public AddChar ( MyConnectedComponentsAnalysisFast char_blob ) : void
char_blob MyConnectedComponentsAnalysisFast
리턴 void
        private void Convert2FinalStringList()
        {
            TextString ts = new TextString();

            for (int i = 0; i < _char_list.Count; i++)
            {
                ts.AddChar(_char_list[i]);
            }
            _final_string_list.Add(ts);
        }
 private void MergeOne(List <int> tmp_list4one)
 {
     if (_debug)
     {
         Console.WriteLine("*******Merge One******");
     }
     for (int i = 0; i < tmp_list4one.Count; i++)
     {
         // for small cc only since small cc still has neighbors
         int idx1 = tmp_list4one[i];
         MyConnectedComponentsAnalysisFast.MyBlob char1 = _char_list[idx1];
         for (int ni = 0; ni < char1.neighbors.Count; ni++)
         {
             int idx = char1.neighbors[ni];
             for (int j = 0; j < _final_string_list.Count; j++)
             {
                 TextString ts = _final_string_list[j];
                 if (ts._char_list.Contains(_char_list[idx]))
                 {
                     _char_list[idx1].included = true;
                     ts.AddChar(_char_list[idx1]);
                     if (_debug)
                     {
                         Console.WriteLine("                 Add TS: " + idx1 + " to TS: " + j);
                     }
                 }
             }
         }
         if (_debug)
         {
             Console.WriteLine(idx1 + " is not a small cc");
         }
         if (!_char_list[idx1].included)
         {
             _char_list[idx1].included = true;
             List <int> tmp_list = new List <int>();
             tmp_list.Add(idx1);
             AddSubstring(tmp_list);
         }
     }
 }
        private void AddSubstring(List <int> substring_list)
        {
            if (_debug)
            {
                Console.Write("Final ST#: " + _final_string_list.Count + "                 Add TS:     ");
            }
            TextString ts = new TextString();

            for (int i = 0; i < substring_list.Count; i++)
            {
                ts.AddChar(_char_list[substring_list[i]]);
                _char_list[substring_list[i]].included = true;
                if (_debug)
                {
                    Console.Write(substring_list[i] + " ");
                }
            }

            _final_string_list.Add(ts);
            if (_debug)
            {
                Console.WriteLine();
            }
        }
 private void Convert2FinalStringList()
 {
     TextString ts = new TextString();
     for (int i = 0; i < _char_list.Count; i++)
         ts.AddChar(_char_list[i]);
     _final_string_list.Add(ts);
 }
        private void AddSubstring(List<int> substring_list)
        {
            if (_debug) Console.Write("Final ST#: " + _final_string_list.Count + "                 Add TS:     ");
            TextString ts = new TextString();
            for (int i = 0; i < substring_list.Count; i++)
            {
                ts.AddChar(_char_list[substring_list[i]]);
                _char_list[substring_list[i]].included = true;
                if (_debug) Console.Write(substring_list[i] + " ");
            }

            _final_string_list.Add(ts);
            if (_debug) Console.WriteLine();
        }
 private void MergeTwo(List <List <int> > tmp_list4two)
 {
     if (_debug)
     {
         Console.WriteLine("identify non-connected two CC, add them to TS");
     }
     for (int i = 0; i < tmp_list4two.Count; i++)
     {
         int idx1 = tmp_list4two[i][0];
         int idx2 = tmp_list4two[i][1];
         if (!_char_list[idx1].included && !_char_list[idx2].included)
         {
             _char_list[idx1].included = true;
             _char_list[idx2].included = true;
             AddSubstring(tmp_list4two[i]);
         }
     }
     if (_debug)
     {
         Console.WriteLine("assign other two cc substring to each connected substring");
     }
     for (int i = 0; i < tmp_list4two.Count; i++)
     {
         int idx1 = tmp_list4two[i][0];
         int idx2 = tmp_list4two[i][1];
         if (!_char_list[idx1].included || !_char_list[idx2].included)
         {
             int  idx    = 0;
             int  idx3   = 0;
             bool addtwo = false;
             if (_char_list[idx1].included && _char_list[idx3].sizefilter_included == false)
             {
                 idx = idx1; idx3 = idx2;
             }
             else if (_char_list[idx3].included && _char_list[idx1].sizefilter_included == false)
             {
                 idx = idx2; idx3 = idx1;
             }
             else
             {
                 addtwo = true;
             }
             if (addtwo)
             {
                 _char_list[idx1].included = true;
                 _char_list[idx2].included = true;
                 AddSubstring(tmp_list4two[i]);
             }
             else
             {
                 for (int j = 0; j < _final_string_list.Count; j++)
                 {
                     TextString ts = _final_string_list[j];
                     if (ts._char_list.Contains(_char_list[idx]))
                     {
                         ts.AddChar(_char_list[idx3]);
                         _char_list[idx3].included = true;
                         if (_debug)
                         {
                             Console.WriteLine("Add: " + idx3 + " to " + idx + "\'ts");
                         }
                     }
                 }
             }
         }
         else
         {
             if (_debug)
             {
                 Console.WriteLine(idx1 + "   " + idx2 + "    added already!");
             }
         }
     }
 }