bool Foam::fileFormats::OFSsurfaceFormat<Face>::read ( Istream& is, MeshedSurface<Face>& surf ) { surf.clear(); if (!is.good()) { FatalErrorIn ( "fileFormats::OFSsurfaceFormat::read" "(Istream&, MeshedSurface<Face>&)" ) << "read error " << exit(FatalError); } pointField pointLst; List<Face> faceLst; List<surfZone> zoneLst; read(is, pointLst, faceLst, zoneLst); surf.reset ( xferMove(pointLst), xferMove(faceLst), xferMove(zoneLst) ); return true; }
bool Foam::fileFormats::OFSsurfaceFormat<Face>::read ( Istream& is, pointField& pointLst, List<Face>& faceLst, List<surfZone>& zoneLst ) { if (!is.good()) { FatalErrorIn ( "fileFormats::OFSsurfaceFormat::read" "(Istream&, pointField&, List<Face>&, List<surfZone>&)" ) << "read error " << exit(FatalError); } // read surfZones: is >> zoneLst; // read points: is >> pointLst; // must triangulate? if (MeshedSurface<Face>::isTri()) { // read faces as 'face' and transcribe to 'triFace' List<face> origFaces(is); MeshedSurface<face> origSurf ( xferMove(pointLst), xferMove(origFaces), xferMove(zoneLst) ); MeshedSurface<Face> surf; surf.transcribe(origSurf); } else { // read faces directly is >> faceLst; } return true; }
bool Foam::fileFormats::OFSsurfaceFormat<Face>::read ( const fileName& filename ) { this->clear(); IFstream is(filename); if (!is.good()) { FatalErrorIn ( "fileFormats::OFSsurfaceFormat::read(const fileName&)" ) << "Cannot read file " << filename << exit(FatalError); } // read surfZones: is >> this->storedZones(); // read points: is >> this->storedPoints(); // must triangulate? if (MeshedSurface<Face>::isTri()) { // read faces as 'face' and transcribe to 'triFace' List<face> faceLst(is); MeshedSurface<face> surf ( xferMove(this->storedPoints()), xferMove(faceLst), xferMove(this->storedZones()) ); this->transcribe(surf); } else { // read faces directly is >> this->storedFaces(); } return true; }
Foam::autoPtr<Foam::polyMesh> Foam::meshReader::mesh ( const objectRegistry& registry ) { readGeometry(); Info<< "Creating a polyMesh" << endl; createPolyCells(); Info<< "Number of internal faces: " << nInternalFaces_ << endl; createPolyBoundary(); clearExtraStorage(); autoPtr<polyMesh> mesh ( new polyMesh ( IOobject ( polyMesh::defaultRegion, "constant", registry ), xferMove(points_), xferMove(meshFaces_), xferMove(cellPolys_) ) ); // adding patches also checks the mesh mesh().addPatches(polyBoundaryPatches(mesh)); warnDuplicates("boundaries", mesh().boundaryMesh().names()); addCellZones(mesh()); addFaceZones(mesh()); return mesh; }
Foam::Xfer<Foam::edgeMesh> Foam::edgeMesh::xfer() { return xferMove(*this); }