56 if( newTriangleLabel[triI] != -1 )
59 newTriangleLabel[triI] = counter;
64 forAll(pointTriangles[tri[0]], ptI)
66 const label triJ = pointTriangles(tri[0], ptI);
74 newTriangleLabel[triJ] = newTriangleLabel[triI];
78 Info <<
"Found " << (newTriangleLabel.
size()-counter)
79 <<
" duplicate triangles" <<
endl;
82 if( counter == newTriangleLabel.
size() )
86 Info <<
"New number of triangles " << counter <<
endl;
91 forAll(newTriangleLabel, triI)
93 newTriangles[newTriangleLabel[triI]] =
surf_[triI];
108 bool foundDuplicates(
false);
111 # pragma omp parallel
118 newPointLabel[pI] = pI;
126 # pragma omp for schedule(dynamic, 20)
150 std::set<label>::const_iterator it=
points.begin();
154 const label pointI = *it;
158 std::set<label>::const_iterator nIt=++it;
164 foundDuplicates =
true;
166 # pragma omp critical
168 newPointLabel[*nIt] = pointI;
175 if( !foundDuplicates )
181 if( newPointLabel[pI] == pI )
183 newPointLabel[pI] = counter;
185 pts[counter] = pts[pI];
190 const label origI = newPointLabel[pI];
191 newPointLabel[pI] = newPointLabel[origI];
194 Info <<
"Found " << (pts.size() - counter) <<
"duplicate points" <<
endl;
196 pts.setSize(counter);
208 newPointLabel[tri[0]],
209 newPointLabel[tri[1]],
210 newPointLabel[tri[2]],
215 for(
label i=0;i<2;++i)
216 for(
label j=i+1;j<3;++j)
217 if( newTri[i] == newTri[j] )
225 newTriangles[counter] = newTri;
226 newTriangleLabel[triI] = counter;
251 forAll(newTriangleLabel_, triI)
253 const label origI = newTriangleLabel_[triI];
256 newTriangleLabel_[triI] = newTriangleLabel[origI];