46 labelList newOrder(cellCellAddressing.size());
51 bitSet visited(cellCellAddressing.size());
53 label cellInOrder = 0;
70 label currentCell = -1;
78 if (cellCellAddressing[celli].size() < minWeight)
80 minWeight = cellCellAddressing[celli].size();
87 if (currentCell == -1)
97 nextCell.
append(currentCell);
104 while (nextCell.size())
106 currentCell = nextCell.removeHead();
108 if (visited.set(currentCell))
113 newOrder[cellInOrder] = currentCell;
117 const labelList& neighbours = cellCellAddressing[currentCell];
127 label nbr = neighbours[nI];
132 weights.
append(cellCellAddressing[nbr].size());
140 nextCell.append(nbrs[i]);
160 label start = offsets[celli];
161 label
end = offsets[celli+1];
163 for (label facei = start; facei <
end; facei++)
166 numNbrs[cellCells[facei]]++;
176 bitSet visited(offsets.size()-1);
178 label cellInOrder = 0;
195 label currentCell = -1;
203 if (numNbrs[celli] < minWeight)
205 minWeight = numNbrs[celli];
212 if (currentCell == -1)
222 nextCell.append(currentCell);
229 while (nextCell.size())
231 currentCell = nextCell.removeHead();
233 if (!visited[currentCell])
235 visited.set(currentCell);
238 newOrder[cellInOrder] = currentCell;
247 label start = offsets[currentCell];
248 label
end = offsets[currentCell+1];
250 for (label facei = start; facei <
end; facei++)
252 label nbr = cellCells[facei];
257 weights.
append(numNbrs[nbr]);
265 nextCell.append(nbrs[i]);