int main(int argc, char *argv[]) { argList::noParallel(); argList::validArgs.append("surfaceFile"); argList::validArgs.append("output surfaceFile"); argList::validArgs.append("maximum length"); argList args(argc, argv); const fileName surfFileName = args[1]; const fileName outFileName = args[2]; const scalar maxLength = args.argRead<scalar>(3); Info<< "Reading surface from " << surfFileName << " ..." << endl << endl; const triSurface& surf1(surfFileName); triSurface surf2; triSurface surf = surf1; int loopCounter = 1; while(true) { const pointField points(surf.points()); const labelList meshPoints(surf.meshPoints()); const edgeList& edges = surf.edges(); labelListList edgeFaces = surf.sortedEdgeFaces(); List<bool> refineFaces(surf.size(), false); forAll(edges, i) { const edge e = surf.edges()[i]; const point& pStart = points[meshPoints[e.start()]]; const point& pEnd = points[meshPoints[e.end()]]; const vector eVec(pEnd - pStart); const scalar eMag = mag(eVec); if(eMag > maxLength) { labelList edgeFacesI = edgeFaces[i]; forAll(edgeFacesI, i) { label faceI = edgeFacesI[i]; refineFaces[faceI] = true; } } }
bool Foam::directionInfo::equal(const edge& e, const label v0, const label v1) { return (e.start() == v0 && e.end() == v1) || (e.start() == v1 && e.end() == v0); }