190 vector< mark_col > aClusterCol;
194 unsigned int circle = 0;
196 for(
unsigned int i=0; i<aMarkCol.size(); i++ )
199 for(
unsigned int j=0; j< aClusterCol.size(); j++ )
201 if( (*aMarkCol[i]).
IsInCol(aClusterCol[j]) !=-1 ) {
207 aClusterCol[j].push_back( aMarkCol[i] );
213 if( recordFlag == 0 )
216 aCluster.push_back( aMarkCol[i] );
217 aClusterCol.push_back( aCluster );
222 for(
unsigned int j = i+1; j<aMarkCol.size(); j++ )
224 if( (*aMarkCol[j]).
IsInCol(aClusterCol.back()) !=-1 )
continue;
226 aClusterCol.back().push_back( aMarkCol[j] );
228 }
while( circle < aMarkCol.size()-i-1);
237 vector< mark_col > aClusterCol;
240 unsigned int circle = 0;
241 for(
unsigned int i=0; i<aMarkCol.size(); i++ )
243 if( (*aMarkCol[i]).
IsInCol(checkedMarkCol) !=-1 )
continue;
246 aCluster.push_back( aMarkCol[i] );
247 aClusterCol.push_back( aCluster );
248 checkedMarkCol.push_back( aMarkCol[i] );
252 for(
unsigned int j = i+1; j<aMarkCol.size(); j++ )
254 if( (*aMarkCol[j]).
IsInCol(checkedMarkCol) != -1)
continue;
256 aClusterCol.back().push_back( aMarkCol[j] );
257 checkedMarkCol.push_back( aMarkCol[j] );
261 }
while(circle < aMarkCol.size()-i-1);
270 vector< mark_col > aClusterCol;
272 copyMarkCol = aMarkCol;
274 mark_col::iterator it1;
275 while( copyMarkCol.size() !=0 )
277 it1 = copyMarkCol.begin();
279 aCluster.push_back( copyMarkCol[0] );
280 aClusterCol.push_back( aCluster );
282 copyMarkCol.erase( it1 );
283 unsigned int circle = 0;
284 unsigned int size = 0;
285 unsigned int beginsize = copyMarkCol.size();
286 while( circle < beginsize )
288 mark_col::iterator it2;
289 size = copyMarkCol.size();
290 for(
unsigned int j=0, headNum=0; j < size; j++ )
292 it2 = copyMarkCol.begin() + headNum;
293 if( (copyMarkCol[headNum])->
IsNeighborWith( aClusterCol.back() ) ) {
294 aClusterCol.back().push_back( (copyMarkCol[headNum]) );
295 copyMarkCol.erase(it2);
310 vector< mark_col > aClusterCol;
312 bool recordFlag =
false;
313 unsigned int circle = 0;
315 for(
unsigned int i=0; i<aMarkCol.size(); i++ )
318 for(
int j= aClusterCol.size()-1; j>-1; j-- )
320 if( (*aMarkCol[i]).
IsInCol(aClusterCol[j]) !=-1 ) {
326 aClusterCol[j].push_back( aMarkCol[i] );
332 if( recordFlag ==
false )
335 aCluster.push_back( aMarkCol[i] );
336 aClusterCol.push_back( aCluster );
341 for(
unsigned int j = i+1; j<aMarkCol.size(); j++ )
343 if( (*aMarkCol[j]).
IsInCol(aClusterCol.back()) !=-1 )
continue;
345 aClusterCol.back().push_back( aMarkCol[j] );
347 }
while( circle < aMarkCol.size()-i-1);