40 return wordHashSet(*fileExtensionConstructorTablePtr_);
47 return wordHashSet(*writefileExtensionMemberFunctionTablePtr_);
60 readTypes() | ParentType::readTypes(),
97 return canReadType(ext, verbose);
110 Info<<
"UnsortedMeshedSurface::write"
111 "(const fileName&, const UnsortedMeshedSurface&) : "
112 "writing to " << name
118 typename writefileExtensionMemberFunctionTable::iterator mfIter =
119 writefileExtensionMemberFunctionTablePtr_->find(ext);
121 if (mfIter == writefileExtensionMemberFunctionTablePtr_->end())
126 if (supported.
found(ext))
134 "UnsortedMeshedSurface::write"
135 "(const fileName&, const UnsortedMeshedSurface&)"
136 ) <<
"Unknown file extension " << ext <<
nl <<
nl
137 <<
"Valid types are :" <<
endl
138 << (supported | writeTypes())
144 mfIter()(
name, surf);
184 if (zoneSizes.
size())
186 if (zoneNames.
size())
188 setZones(zoneSizes, zoneNames);
306 zoneIds_.setSize(size());
312 zoneName = zoneToc_[0].name();
314 if (zoneName.empty())
331 zoneIds_.setSize(size());
332 zoneToc_.setSize(zoneLst.
size());
336 const surfZone& zone = zoneLst[zoneI];
337 zoneToc_[zoneI] = zone;
353 zoneIds_.setSize(size());
354 zoneToc_.setSize(sizes.
size());
365 start += sizes[zoneI];
376 zoneIds_.setSize(size());
377 zoneToc_.setSize(sizes.
size());
392 start += sizes[zoneI];
404 if (&faceMap && faceMap.
size())
406 if (zoneToc_.empty())
410 else if (zoneToc_.size() == 1)
421 newZones[faceI] = zoneIds_[faceMap[faceI]];
423 zoneIds_.transfer(newZones);
434 this->storedFaces().setSize(s);
436 zoneIds_.setSize(s, zoneToc_.size() - 1);
459 zoneNames.
insert(zoneI, zoneToc_[zoneI].
name());
472 const label origId = zoneIds_[faceI];
475 if (fnd != lookup.
end())
492 label origId = iter.key();
496 if (fnd != zoneNames.
end())
521 faceMap.
setSize(zoneIds_.size());
525 label zoneI = lookup[zoneIds_[faceI]];
526 faceMap[faceI] = zoneLst[zoneI].start() + zoneLst[zoneI].
size()++;
543 const pointField& locPoints = this->localPoints();
544 const List<Face>& locFaces = this->localFaces();
554 newPoints[pointI] = locPoints[pointMap[pointI]];
555 oldToNew[pointMap[pointI]] = pointI;
564 const label origFaceI = faceMap[faceI];
565 newFaces[faceI] = Face(locFaces[origFaceI]);
568 Face&
f = newFaces[faceI];
571 f[fp] = oldToNew[f[fp]];
574 newZones[faceI] = zoneIds_[origFaceI];
596 return subsetMesh(include, pointMap, faceMap);
617 zoneIds_.transfer(zoneIds());
639 zoneIds_.transfer(zoneIds());
658 zoneToc_.transfer(surf.zoneToc_);
698 return read(unzipName, unzipName.
ext());
702 return read(name, ext);
718 transfer(New(name, ext)());
744 this->storedPoints() = surf.
points();
745 this->storedFaces() = surf.
faces();
746 zoneIds_ = surf.zoneIds_;
747 zoneToc_ = surf.zoneToc_;
752 Foam::UnsortedMeshedSurface<Face>::operator