Go to the documentation of this file.
41 const UList<Face>& faces
45 label nConnectivity = 0;
46 for (
const Face&
f : faces)
48 nConnectivity +=
f.size();
62 for (
const Face&
f : faces)
99 <<
"Cannot read file " << filename <<
nl
114 "vtk::surfaceFormat",
129 for (
auto fieldName : {
"region",
"STLSolidLabeling" })
137 for (
const auto& region : *lptr)
139 zones[i++] = label(region);
150 for (
const auto& region : *sptr)
152 zones[i++] = label(region);
172 for (
const face&
f : faces)
174 nTri +=
f.nTriangles();
180 if (nTri > faces.size())
190 const face&
f = faces[facei];
191 for (label fp1 = 1; fp1 <
f.size() - 1; fp1++)
193 const label fp2 =
f.fcIndex(fp1);
195 dynFaces.
append(Face{
f[0],
f[fp1],
f[fp2]});
196 dynZones.
append(zones[facei]);
203 for (
const label zonei : dynZones)
208 this->sortFacesAndStore(dynFaces, dynZones, dynElemId, sorted);
211 this->addZones(zoneSizes, zoneNames);
218 for (
const face&
f : faces)
220 dynFaces.append(Face(
f));
225 for (
const label zonei : zones)
230 this->sortFacesAndStore(dynFaces, dynZones, dynElemId, sorted);
233 this->addZones(zoneSizes, zoneNames);
235 this->addZonesToFaces();
238 this->storedPoints().transfer(reader.
points());
260 ? surfaceFormatsCore::oneZone(faceLst)
264 const bool useFaceMap = (surf.
useFaceMap() && zones.size() > 1);
268 std::ofstream os(filename, std::ios::binary);
277 label nConnectivity = 0;
278 for (
const Face&
f : faceLst)
280 nConnectivity +=
f.size();
295 const Face&
f = faceLst[
faceMap[faceIndex++]];
307 writePolys(
format(), faceLst);
311 if (zones.size() > 1)
313 writeCellData(
format(), zones);
329 std::ofstream os(filename, std::ios::binary);
336 writePolys(
format(), surf.surfFaces());
Encapsulated combinations of output format options. This is primarily useful when defining the output...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
A class for handling file names.
const faceList & faces() const
2D cells (=faces)
A primitive field of type <T> with automated input and output.
const objectRegistry & cellData() const
Cell based fields.
bool useFaceMap() const
Can/should use faceMap?
static constexpr const zero Zero
Global zero (0)
Input from file stream, using an ISstream.
Reader for vtk UNSTRUCTURED_GRID legacy files. Supports single CELLS, POINTS etc. entry only.
const pointField & points() const
Points.
Base class for mesh zones.
void beginPolys(std::ostream &os, label nPolys, label nConnectivity)
Emit header for POLYGONS (with trailing newline).
autoPtr< formatter > newFormatter(std::ostream &os) const
Return new formatter based on the selected output options.
const pointField & points() const
Return const access to the points.
static void writeHeader(Ostream &os, const word &fieldName)
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats.
const labelUList & faceMap() const
Const access to the faceMap, zero-sized when unused.
#define forAll(list, i)
Loop across all elements in list.
Registry of regIOobjects.
virtual const labelList & zoneIds() const
Return const access to the zone ids.
word format(conversionProperties.get< word >("format"))
A surface geometry mesh, in which the surface zone information is conveyed by the 'zoneId' associated...
DynamicList< T, SizeMin > & append(const T &val)
Append an element to the end of this list.
The IOstreamOption is a simple container for options an IOstream can normally have.
void writeList(vtk::formatter &fmt, const UList< uint8_t > &values)
Write a list of uint8_t values.
static const word defaultName("coeffs")
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
errorManipArg< error, int > exit(error &err, const int errNo=1)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const Type * findObject(const word &name, const bool recursive=false) const
Return const pointer to the object of the given Type.
A surface zone on a MeshedSurface.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A face is a list of labels corresponding to mesh vertices.
const UList< Face > & surfFaces() const
Return const access to the faces.
bool good() const
Return true if next operation might succeed.
const UList< surfZone > & surfZones() const
Const access to the surface zones.