35bool Foam::triSurface::stitchTriangles
51 Pout<<
"stitchTriangles : Merged from " << pointMap.size()
52 <<
" points down to " << ps.size() <<
endl;
56 label newTriangleI = 0;
74 Pout<<
"stitchTriangles : "
75 <<
"Removing triangle " << i
76 <<
" with non-unique vertices." <<
nl
77 <<
" vertices :" << newTri <<
nl
78 <<
" coordinates:" << newTri.points(ps)
83 if (newTriangleI !=
size())
87 Pout<<
"stitchTriangles : "
88 <<
"Removed " <<
size() - newTriangleI
89 <<
" triangles" <<
endl;
98 bitSet pointIsUsed(ps.size());
102 for (
const labelledTri&
f : *
this)
104 for (
const label pointi :
f)
106 if (pointIsUsed.set(pointi))
116 pointMap.setSize(ps.size());
118 forAll(pointIsUsed, pointi)
120 if (pointIsUsed[pointi])
129 for (
const labelledTri&
f : *
this)
143 return bool(nChanged);
void setSize(const label n)
Alias for resize()
label nPoints() const
Number of points supporting patch faces.
label size() const noexcept
The number of elements in the UList.
T & operator[](const label i)
Return element of UList.
pointField & storedPoints()
Non-const access to global points.
Geometric merging of points. See below.
List< label > labelList
A List of labels.
vectorField pointField
pointField is a vectorField.
Ostream & endl(Ostream &os)
Add newline and flush stream.
label inplaceMergePoints(PointList &points, const scalar mergeTol, const bool verbose, labelList &pointToUnique)
prefixOSstream Pout
OSstream wrapped stdout (std::cout) with parallel prefix.
constexpr char nl
The newline '\n' character (0x0a)
#define forAll(list, i)
Loop across all elements in list.