37 const label cellTableId
41 <<
' ' << starcdShellShape_
44 <<
' ' << starcdShellType_;
53 os <<
nl <<
" " << cellId;
55 os <<
' ' << f[fp] + 1;
82 const bool mustTriangulate = this->isTri();
102 mapPointId.insert(pointId[i], i);
114 "fileFormats::STARCDsurfaceFormat::read(const fileName&)"
116 <<
"Cannot read file " << is.
name()
120 readHeader(is,
"PROSTAR_CELL");
132 label lineLabel, shapeId, nLabels, cellTableId, typeId;
135 while ((is >> lineLabel).good())
137 is >> shapeId >> nLabels >> cellTableId >> typeId;
139 vertexLabels.
clear();
143 for (label i = 0; i < nLabels; ++i)
153 vertexLabels.
append(mapPointId[vrtId]);
156 if (typeId == starcdShellType_)
160 if (fnd != lookup.
end())
171 zoneI = dynSizes.
size();
172 lookup.
insert(cellTableId, zoneI);
178 if (mustTriangulate && nLabels > 3)
202 dynFaces.
append(Face(vertices));
210 sortFacesAndStore(dynFaces.
xfer(), dynZones.
xfer(), sorted);
213 this->addZones(dynSizes, dynNames,
true);
241 writePoints(
OFstream(baseName +
".vrt")(), pointLst);
243 writeHeader(os,
"CELL");
248 const surfZone& zone = zones[zoneI];
254 const Face& f = faceLst[faceMap[faceIndex++]];
255 writeShell(os, f, faceIndex, zoneI + 1);
262 const Face& f = faceLst[faceIndex++];
263 writeShell(os, f, faceIndex, zoneI + 1);