diff --git a/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L b/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L index c6343dd55efba314a035b5b2fb2de71cb4ecc476..fe49521d0d30b7b3ea2d1f38726706a5715c5a96 100644 --- a/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L +++ b/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L @@ -438,6 +438,7 @@ bool triSurface::readSTLASCII(const fileName& STLfileName) STLlabels.clear(); + // Stitch all points within SMALL meters. stitchTriangles(rawPoints); // Convert solidNames into regionNames diff --git a/src/triSurface/triSurface/stitchTriangles.C b/src/triSurface/triSurface/stitchTriangles.C index 5b22529bdd4576293164046637c397df247831e4..a9bf3c47827a5229e8cd509b9a8f3ed3c2be6b38 100644 --- a/src/triSurface/triSurface/stitchTriangles.C +++ b/src/triSurface/triSurface/stitchTriangles.C @@ -42,17 +42,16 @@ bool triSurface::stitchTriangles ) { // Merge points - labelList pointMap(rawPoints.size()); - - pointField newPoints(rawPoints.size()); - + labelList pointMap; + pointField newPoints; bool hasMerged = mergePoints(rawPoints, tol, verbose, pointMap, newPoints); if (hasMerged) { if (verbose) { - Pout<< "stitchTriangles : Renumbering all triangles" << endl; + Pout<< "stitchTriangles : Merged from " << rawPoints.size() + << " points down to " << newPoints.size() << endl; } pointField& ps = const_cast<pointField&>(points()); @@ -73,6 +72,7 @@ bool triSurface::stitchTriangles operator[](newTriangleI)[0] = newA; operator[](newTriangleI)[1] = newB; operator[](newTriangleI)[2] = newC; + operator[](newTriangleI).region() = operator[](i).region(); newTriangleI++; } else if (verbose) diff --git a/src/triSurface/triSurface/triSurface.C b/src/triSurface/triSurface/triSurface.C index a3f7fec87963d04b233b26b267b318d78a277d00..b58c2f6f583527a83d60291629df5a256a0fa02d 100644 --- a/src/triSurface/triSurface/triSurface.C +++ b/src/triSurface/triSurface/triSurface.C @@ -651,7 +651,7 @@ surfacePatchList triSurface::calcPatches(labelList& faceMap) const { sortedRegion[faceI] = operator[](faceI).region(); } - sortedRegion.sort(); + sortedRegion.stableSort(); faceMap = sortedRegion.indices();