37 const label cellTableId
41 <<
' ' << starcdShellShape_
44 <<
' ' << starcdShellType_;
55 os <<
' ' << f[fp] + 1;
82 const bool mustTriangulate = this->isTri();
94 cellTableLookup = readInpCellTable(is);
106 this->storedPoints(),
114 mapPointId.insert(pointId[i], i);
125 <<
"Cannot read file " << is.
name()
129 readHeader(is,
"PROSTAR_CELL");
141 label lineLabel, shapeId, nLabels, cellTableId, typeId;
144 while ((is >> lineLabel).good())
146 is >> shapeId >> nLabels >> cellTableId >> typeId;
148 vertexLabels.
clear();
152 for (
label i = 0; i < nLabels; ++i)
162 vertexLabels.
append(mapPointId[vrtId]);
165 if (typeId == starcdShellType_)
169 if (fnd != lookup.
end())
180 zoneI = dynSizes.
size();
181 lookup.
insert(cellTableId, zoneI);
184 cellTableLookup.
find(cellTableId);
186 if (tableNameIter == cellTableLookup.
end())
195 dynNames.
append(tableNameIter());
202 if (mustTriangulate && nLabels > 3)
217 static_cast<labelUList&>(triFaces[facei])
234 this->sortFacesAndStore(move(dynFaces), move(dynZones), sorted);
237 this->addZones(dynSizes, dynNames,
true);
256 ? surfaceFormatsCore::oneZone(faceLst)
265 writePoints(
OFstream(baseName +
".vrt")(), pointLst);
267 writeHeader(os,
"CELL");
278 const Face& f = faceLst[faceMap[faceIndex++]];
279 writeShell(os, f, faceIndex, zoneI + 1);
286 const Face& f = faceLst[faceIndex++];
287 writeShell(os, f, faceIndex, zoneI + 1);
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A class for handling file names.
An STL-conforming const_iterator.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A face is a list of labels corresponding to mesh vertices.
static iteratorEnd end()
iteratorEnd set to beyond the end of any HashTable
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A surface zone on a MeshedSurface.
void size(const label)
Override size to be inconsistent with allocated storage.
Ostream & endl(Ostream &os)
Add newline and flush stream.
label triangles(const pointField &points, label &triI, faceList &triFaces) const
Split into triangles using existing points.
bool good() const
Return true if next operation might succeed.
void reserve(const label)
Reserve allocation space for at least this size.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
Various functions to operate on Lists.
bool insert(const Key &, const T &newElmt)
Insert a new hashedEntry.
iterator find(const Key &)
Find and return an iterator set at the hashedEntry.
pointField vertices(const blockVertexList &bvl)
bool useFaceMap() const
Use faceMap?
A List obtained as a section of another List.
stressControl lookup("compactNormalStress") >> compactNormalStress
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
void clear()
Clear the list, i.e. set size to zero.
const List< Face > & faces() const
Return const access to the faces.
A class for handling words, derived from string.
A triangular face using a FixedList of labels corresponding to mesh vertices.
const fileName & name() const
Return the name of the stream.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
const List< surfZone > & surfZones() const
Const access to the surface zones.
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats...
word name(const complex &)
Return a string representation of a complex.
label size() const
The surface size is the number of faces.
const pointField & points() const
Return const access to the points.
const List< label > & faceMap() const
Const access to the faceMap, zero-sized when unused.
fileName lessExt() const
Return file name without extension (part before last .)
label nTriangles() const
Number of triangles after splitting.
void clear()
Clear the addressed list, i.e. set the size to zero.
A HashTable to objects of type <T> with a label key.