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])
226 dynFaces.
append(Face(vertices));
234 this->sortFacesAndStore(dynFaces.
xfer(), dynZones.
xfer(), 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
const List< label > & faceMap() const
Const access to the faceMap, zero-sized when unused.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
label size() const
The surface size is the number of faces.
A surface zone on a MeshedSurface.
void size(const label)
Override size to be inconsistent with allocated storage.
bool good() const
Return true if next operation might succeed.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const fileName & name() const
Return the name of the stream.
const List< Face > & faces() const
Return const access to the faces.
const List< surfZone > & surfZones() const
Const access to the surface zones.
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.
const pointField & points() const
Return const access to the points.
bool insert(const Key &, const T &newElmt)
Insert a new hashedEntry.
iterator find(const Key &)
Find and return an iterator set at the hashedEntry.
A List obtained as a section of another List.
bool read(const char *, int32_t &)
bool useFaceMap() const
Use faceMap?
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.
A class for handling words, derived from string.
A triangular face using a FixedList of labels corresponding to mesh vertices.
Xfer< List< T > > xfer()
Transfer contents to the Xfer container as a plain List.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats...
fileName lessExt() const
Return file name without extension (part before last .)
word name(const complex &)
Return a string representation of a complex.
label nTriangles() const
Number of triangles after splitting.
label triangles(const pointField &points, label &triI, faceList &triFaces) const
Split into triangles using existing points.
void clear()
Clear the addressed list, i.e. set the size to zero.
A HashTable to objects of type <T> with a label key.