Go to the documentation of this file.
42 const UList<Face>& faces
46 label nConnectivity = 0;
47 for (
const Face&
f : faces)
49 nConnectivity +=
f.size();
63 for (
const Face&
f : faces)
100 <<
"Cannot read file " << filename <<
nl
115 "vtk::surfaceFormat",
130 for (
auto fieldName : {
"region",
"STLSolidLabeling" })
138 for (
const auto& region : *lptr)
140 zones[i++] = label(region);
151 for (
const auto& region : *sptr)
153 zones[i++] = label(region);
165 zoneNames[i] = surfZone::defaultName(i);
173 for (
const face&
f : faces)
175 nTri +=
f.nTriangles();
181 if (nTri > faces.size())
191 const face&
f = faces[facei];
192 for (label fp1 = 1; fp1 <
f.size() - 1; fp1++)
194 const label fp2 =
f.fcIndex(fp1);
196 dynFaces.
append(Face{
f[0],
f[fp1],
f[fp2]});
197 dynZones.
append(zones[facei]);
204 for (
const label zonei : dynZones)
209 this->sortFacesAndStore(dynFaces, dynZones, dynElemId, sorted);
212 this->addZones(zoneSizes, zoneNames);
219 for (
const face&
f : faces)
221 dynFaces.append(Face(
f));
226 for (
const label zonei : dynZones)
231 this->sortFacesAndStore(dynFaces, dynZones, dynElemId, sorted);
234 this->addZones(zoneSizes, zoneNames);
236 this->addZonesToFaces();
239 this->storedPoints().transfer(reader.
points());
261 ? surfaceFormatsCore::oneZone(faceLst)
265 const bool useFaceMap = (surf.
useFaceMap() && zones.size() > 1);
269 std::ofstream
os(filename, std::ios::binary);
278 label nConnectivity = 0;
279 for (
const Face&
f : faceLst)
281 nConnectivity +=
f.size();
296 const Face&
f = faceLst[
faceMap[faceIndex++]];
308 writePolys(
format(), faceLst);
312 if (zones.size() > 1)
314 writeCellData(
format(), zones);
330 std::ofstream
os(filename, std::ios::binary);
337 writePolys(
format(), surf.surfFaces());
Encapsulated combinations of output format options. This is primarily useful when defining the output...
const pointField & points() const noexcept
Points.
const faceList & faces() const noexcept
2D cells (=faces)
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.
A primitive field of type <T> with automated input and output.
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.
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 dictionary formatOptions
const labelUList & faceMap() const
Const access to the faceMap, zero-sized when unused.
#define forAll(list, i)
Loop across all elements in list.
bool good() const noexcept
True if next operation might succeed.
Registry of regIOobjects.
virtual const labelList & zoneIds() const
Return const access to the zone ids.
word format(conversionProperties.get< word >("format"))
const objectRegistry & cellData() const noexcept
Cell based fields.
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.
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,...
OBJstream os(runTime.globalPath()/outputName)
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.
const UList< surfZone > & surfZones() const
Const access to the surface zones.