42 const UList<Face>& faces
46 label nConnectivity = 0;
47 for (
const Face&
f : faces)
49 nConnectivity +=
f.size();
52 vtk::legacy::beginPolys
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)
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)
269 std::ofstream
os(filename, std::ios::binary);
273 writeHeader(
format(), pointLst);
278 label nConnectivity = 0;
279 for (
const Face&
f : faceLst)
281 nConnectivity +=
f.size();
284 vtk::legacy::beginPolys
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);
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
void append(const T &val)
Copy append an element to the end of this list.
Input from file stream, using an ISstream.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
The IOstreamOption is a simple container for options an IOstream can normally have.
bool good() const noexcept
True if next operation might succeed.
void clear()
Clear the list, i.e. set size to zero.
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats.
const UList< surfZone > & surfZones() const
Const access to the surface zones.
const UList< Face > & surfFaces() const
Return const access to the faces.
bool useFaceMap() const
Can/should use faceMap?
const pointField & points() const
Return const access to the points.
const labelUList & faceMap() const
Const access to the faceMap, zero-sized when unused.
const List< Face > & surfFaces() const
Return const access to the faces.
const Field< point_type > & points() const noexcept
Return reference to global points.
virtual bool read()
Re-read model coefficients if they have changed.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
bool empty() const noexcept
True if the UList is empty (ie, size() is zero)
void size(const label n)
Older name for setAddressableSize.
A surface geometry mesh, in which the surface zone information is conveyed by the 'zoneId' associated...
virtual const labelList & zoneIds() const
Return const access to the zone ids.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A face is a list of labels corresponding to mesh vertices.
A class for handling file names.
virtual bool write()
Write the output fields.
Registry of regIOobjects.
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.
Reader for vtk UNSTRUCTURED_GRID legacy files. Supports single CELLS, POINTS etc. entry only.
const faceList & faces() const noexcept
2D cells (=faces)
const objectRegistry & cellData() const noexcept
Cell based fields.
const pointField & points() const noexcept
Points.
Encapsulated combinations of output format options. This is primarily useful when defining the output...
autoPtr< formatter > newFormatter(std::ostream &os) const
Return new formatter based on the selected output options.
Base class for mesh zones.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
OBJstream os(runTime.globalPath()/outputName)
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
errorManipArg< error, int > exit(error &err, const int errNo=1)
constexpr char nl
The newline '\n' character (0x0a)
word format(conversionProperties.get< word >("format"))
#define forAll(list, i)
Loop across all elements in list.
const dictionary formatOptions(propsDict.subOrEmptyDict("formatOptions", keyType::LITERAL))