mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: use some updated vtk output methods
This commit is contained in:
@ -55,7 +55,7 @@ void Foam::lumpedPointMovement::writeForcesAndMomentsVTP
|
||||
);
|
||||
|
||||
format().xmlHeader()
|
||||
.beginVTKFile(vtk::fileTag::POLY_DATA, "0.1");
|
||||
.beginVTKFile<vtk::fileTag::POLY_DATA>();
|
||||
|
||||
//
|
||||
// The 'spine' of lumped mass points
|
||||
@ -64,19 +64,20 @@ void Foam::lumpedPointMovement::writeForcesAndMomentsVTP
|
||||
|
||||
{
|
||||
format()
|
||||
.openTag(vtk::fileTag::PIECE)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POINTS, nPoints)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_VERTS, nPoints)
|
||||
.closeTag();
|
||||
.tag
|
||||
(
|
||||
vtk::fileTag::PIECE,
|
||||
vtk::fileAttr::NUMBER_OF_POINTS, nPoints,
|
||||
vtk::fileAttr::NUMBER_OF_VERTS, nPoints
|
||||
);
|
||||
|
||||
// 'points'
|
||||
{
|
||||
const uint64_t payLoad = (nPoints*3* sizeof(float));
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(nPoints);
|
||||
|
||||
format()
|
||||
.tag(vtk::fileTag::POINTS)
|
||||
.openDataArray<float, 3>(vtk::dataArrayAttr::POINTS)
|
||||
.closeTag();
|
||||
.beginDataArray<float, 3>(vtk::dataArrayAttr::POINTS);
|
||||
|
||||
format().writeSize(payLoad);
|
||||
vtk::writeList(format(), state().points());
|
||||
@ -94,12 +95,11 @@ void Foam::lumpedPointMovement::writeForcesAndMomentsVTP
|
||||
// 'connectivity'
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (nPoints*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nPoints);
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
for (label i=0; i<nPoints; ++i)
|
||||
{
|
||||
format().write(i);
|
||||
@ -114,12 +114,11 @@ void Foam::lumpedPointMovement::writeForcesAndMomentsVTP
|
||||
// = linear mapping onto points (with 1 offset)
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (nPoints*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nPoints);
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
for (label i=0; i<nPoints; ++i)
|
||||
{
|
||||
format().write(i+1);
|
||||
@ -133,17 +132,16 @@ void Foam::lumpedPointMovement::writeForcesAndMomentsVTP
|
||||
// </Verts>
|
||||
}
|
||||
|
||||
format().tag(vtk::fileTag::POINT_DATA);
|
||||
format().beginPointData();
|
||||
|
||||
// forces
|
||||
if (forces.size() == nPoints)
|
||||
{
|
||||
const uint64_t payLoad = (nPoints * 3 * sizeof(float));
|
||||
|
||||
format().openDataArray<float, 3>("forces")
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(nPoints);
|
||||
|
||||
format().beginDataArray<float, 3>("forces");
|
||||
format().writeSize(payLoad);
|
||||
|
||||
vtk::writeList(format(), forces);
|
||||
format().flush();
|
||||
|
||||
@ -153,23 +151,23 @@ void Foam::lumpedPointMovement::writeForcesAndMomentsVTP
|
||||
// moments
|
||||
if (moments.size() == nPoints)
|
||||
{
|
||||
const uint64_t payLoad = (nPoints * 3 * sizeof(float));
|
||||
|
||||
format().openDataArray<float, 3>("moments")
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(nPoints);
|
||||
|
||||
format().beginDataArray<float, 3>("moments");
|
||||
format().writeSize(payLoad);
|
||||
|
||||
vtk::writeList(format(), moments);
|
||||
format().flush();
|
||||
|
||||
format().endDataArray();
|
||||
}
|
||||
|
||||
format().endTag(vtk::fileTag::POINT_DATA);
|
||||
format().endPointData();
|
||||
|
||||
format().endTag(vtk::fileTag::PIECE);
|
||||
format().endTag(vtk::fileTag::POLY_DATA);
|
||||
format().endVTKFile();
|
||||
format().endPiece();
|
||||
|
||||
format().endTag(vtk::fileTag::POLY_DATA)
|
||||
.endVTKFile();
|
||||
}
|
||||
|
||||
|
||||
@ -190,7 +188,7 @@ void Foam::lumpedPointMovement::writeZonesVTP
|
||||
);
|
||||
|
||||
format().xmlHeader()
|
||||
.beginVTKFile(vtk::fileTag::POLY_DATA, "0.1");
|
||||
.beginVTKFile<vtk::fileTag::POLY_DATA>();
|
||||
|
||||
forAll(faceZones_, zoneI)
|
||||
{
|
||||
@ -201,19 +199,20 @@ void Foam::lumpedPointMovement::writeZonesVTP
|
||||
);
|
||||
|
||||
format()
|
||||
.openTag(vtk::fileTag::PIECE)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POINTS, pp.nPoints())
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POLYS, pp.size())
|
||||
.closeTag();
|
||||
.tag
|
||||
(
|
||||
vtk::fileTag::PIECE,
|
||||
vtk::fileAttr::NUMBER_OF_POINTS, pp.nPoints(),
|
||||
vtk::fileAttr::NUMBER_OF_POLYS, pp.size()
|
||||
);
|
||||
|
||||
// 'points'
|
||||
{
|
||||
const uint64_t payLoad = (pp.nPoints()*3* sizeof(float));
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(pp.nPoints());
|
||||
|
||||
format()
|
||||
.tag(vtk::fileTag::POINTS)
|
||||
.openDataArray<float, 3>(vtk::dataArrayAttr::POINTS)
|
||||
.closeTag();
|
||||
.beginDataArray<float, 3>(vtk::dataArrayAttr::POINTS);
|
||||
|
||||
format().writeSize(payLoad);
|
||||
vtk::writeList(format(), pp.localPoints());
|
||||
@ -231,17 +230,16 @@ void Foam::lumpedPointMovement::writeZonesVTP
|
||||
// 'connectivity'
|
||||
//
|
||||
{
|
||||
uint64_t payLoad = 0;
|
||||
forAll(pp, facei)
|
||||
label nVerts = 0;
|
||||
for (const face& f : pp)
|
||||
{
|
||||
const face& f = pp[facei];
|
||||
payLoad += f.size();
|
||||
nVerts += f.size();
|
||||
}
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nVerts);
|
||||
|
||||
format().writeSize(payLoad * sizeof(label));
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
for (const face& f : pp.localFaces())
|
||||
{
|
||||
@ -256,11 +254,9 @@ void Foam::lumpedPointMovement::writeZonesVTP
|
||||
// 'offsets' (connectivity offsets)
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (pp.size() * sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(pp.size());
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
label off = 0;
|
||||
@ -279,15 +275,13 @@ void Foam::lumpedPointMovement::writeZonesVTP
|
||||
format().endTag(vtk::fileTag::POLYS);
|
||||
|
||||
|
||||
format().tag(vtk::fileTag::CELL_DATA);
|
||||
format().beginCellData();
|
||||
|
||||
// zone Id
|
||||
{
|
||||
const uint64_t payLoad = (pp.size() * sizeof(label));
|
||||
|
||||
format().openDataArray<label>("zoneId")
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(pp.size());
|
||||
|
||||
format().beginDataArray<label>("zoneId");
|
||||
format().writeSize(payLoad);
|
||||
|
||||
forAll(pp, facei)
|
||||
@ -299,13 +293,13 @@ void Foam::lumpedPointMovement::writeZonesVTP
|
||||
format().endDataArray();
|
||||
}
|
||||
|
||||
format().endTag(vtk::fileTag::CELL_DATA);
|
||||
format().endCellData();
|
||||
|
||||
format().endTag(vtk::fileTag::PIECE);
|
||||
format().endPiece();
|
||||
}
|
||||
|
||||
format().endTag(vtk::fileTag::POLY_DATA);
|
||||
format().endVTKFile();
|
||||
format().endTag(vtk::fileTag::POLY_DATA)
|
||||
.endVTKFile();
|
||||
}
|
||||
|
||||
|
||||
@ -342,26 +336,27 @@ void Foam::lumpedPointMovement::writeVTP
|
||||
);
|
||||
|
||||
format().xmlHeader()
|
||||
.beginVTKFile(vtk::fileTag::POLY_DATA, "0.1");
|
||||
.beginVTKFile<vtk::fileTag::POLY_DATA>();
|
||||
|
||||
for (const label patchId : patchIds)
|
||||
{
|
||||
const polyPatch& pp = boundaryMesh[patchId];
|
||||
|
||||
format()
|
||||
.openTag(vtk::fileTag::PIECE)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POINTS, pp.nPoints())
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POLYS, pp.size())
|
||||
.closeTag();
|
||||
.tag
|
||||
(
|
||||
vtk::fileTag::PIECE,
|
||||
vtk::fileAttr::NUMBER_OF_POINTS, pp.nPoints(),
|
||||
vtk::fileAttr::NUMBER_OF_POLYS, pp.size()
|
||||
);
|
||||
|
||||
// 'points'
|
||||
{
|
||||
const uint64_t payLoad = (pp.nPoints()*3* sizeof(float));
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(pp.nPoints());
|
||||
|
||||
format()
|
||||
.tag(vtk::fileTag::POINTS)
|
||||
.openDataArray<float, 3>(vtk::dataArrayAttr::POINTS)
|
||||
.closeTag();
|
||||
.beginDataArray<float, 3>(vtk::dataArrayAttr::POINTS);
|
||||
|
||||
// Could be more efficient, but not often needed
|
||||
tmp<pointField> tpts = displacePoints
|
||||
@ -390,16 +385,16 @@ void Foam::lumpedPointMovement::writeVTP
|
||||
// 'connectivity'
|
||||
//
|
||||
{
|
||||
uint64_t payLoad = 0;
|
||||
label nVerts = 0;
|
||||
for (const face& f : pp)
|
||||
{
|
||||
payLoad += f.size();
|
||||
nVerts += f.size();
|
||||
}
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nVerts);
|
||||
|
||||
format().writeSize(payLoad * sizeof(label));
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
for (const face& f : pp.localFaces())
|
||||
{
|
||||
@ -414,17 +409,14 @@ void Foam::lumpedPointMovement::writeVTP
|
||||
// 'offsets' (connectivity offsets)
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (pp.size() * sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(pp.size());
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
label off = 0;
|
||||
forAll(pp, facei)
|
||||
for (const face& f : pp)
|
||||
{
|
||||
const face& f = pp[facei];
|
||||
off += f.size();
|
||||
|
||||
format().write(off);
|
||||
@ -436,11 +428,11 @@ void Foam::lumpedPointMovement::writeVTP
|
||||
|
||||
format().endTag(vtk::fileTag::POLYS);
|
||||
|
||||
format().endTag(vtk::fileTag::PIECE);
|
||||
format().endPiece();
|
||||
}
|
||||
|
||||
format().endTag(vtk::fileTag::POLY_DATA);
|
||||
format().endVTKFile();
|
||||
format().endTag(vtk::fileTag::POLY_DATA)
|
||||
.endVTKFile();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -62,27 +62,28 @@ void Foam::lumpedPointState::writeVTP
|
||||
);
|
||||
|
||||
format().xmlHeader()
|
||||
.beginVTKFile(vtk::fileTag::POLY_DATA, "0.1");
|
||||
.beginVTKFile<vtk::fileTag::POLY_DATA>();
|
||||
|
||||
//
|
||||
// The 'spine' of lumped mass points
|
||||
//
|
||||
{
|
||||
format()
|
||||
.openTag(vtk::fileTag::PIECE)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POINTS, points_.size())
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_VERTS, points_.size())
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_LINES, 1)
|
||||
.closeTag();
|
||||
.tag
|
||||
(
|
||||
vtk::fileTag::PIECE,
|
||||
vtk::fileAttr::NUMBER_OF_POINTS, points_.size(),
|
||||
vtk::fileAttr::NUMBER_OF_VERTS, points_.size(),
|
||||
vtk::fileAttr::NUMBER_OF_LINES, 1
|
||||
);
|
||||
|
||||
// 'points'
|
||||
{
|
||||
const uint64_t payLoad = (points_.size()*3* sizeof(float));
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(points_.size());
|
||||
|
||||
format()
|
||||
.tag(vtk::fileTag::POINTS)
|
||||
.openDataArray<float, 3>(vtk::dataArrayAttr::POINTS)
|
||||
.closeTag();
|
||||
.beginDataArray<float, 3>(vtk::dataArrayAttr::POINTS);
|
||||
|
||||
format().writeSize(payLoad);
|
||||
vtk::writeList(format(), points_);
|
||||
@ -100,12 +101,11 @@ void Foam::lumpedPointState::writeVTP
|
||||
// 'connectivity'
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (points_.size()*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(points_.size());
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
forAll(points_, i)
|
||||
{
|
||||
format().write(i);
|
||||
@ -120,12 +120,11 @@ void Foam::lumpedPointState::writeVTP
|
||||
// = linear mapping onto points (with 1 offset)
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (points_.size()*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(points_.size());
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
forAll(points_, i)
|
||||
{
|
||||
format().write(i+1);
|
||||
@ -146,12 +145,11 @@ void Foam::lumpedPointState::writeVTP
|
||||
// 'connectivity'
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (points_.size()*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(points_.size());
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
forAll(points_, i)
|
||||
{
|
||||
format().write(i);
|
||||
@ -166,12 +164,11 @@ void Foam::lumpedPointState::writeVTP
|
||||
// = single line
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (1*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(1);
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
format().write(points_.size());
|
||||
format().flush();
|
||||
|
||||
@ -179,7 +176,7 @@ void Foam::lumpedPointState::writeVTP
|
||||
}
|
||||
|
||||
format().endTag(vtk::fileTag::LINES);
|
||||
format().endTag(vtk::fileTag::PIECE);
|
||||
format().endPiece();
|
||||
}
|
||||
|
||||
// Standard corners in local axis
|
||||
@ -203,19 +200,20 @@ void Foam::lumpedPointState::writeVTP
|
||||
const label nPolys = points_.size();
|
||||
|
||||
format()
|
||||
.openTag(vtk::fileTag::PIECE)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POINTS, nPoints)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POLYS, nPolys)
|
||||
.closeTag();
|
||||
.tag
|
||||
(
|
||||
vtk::fileTag::PIECE,
|
||||
vtk::fileAttr::NUMBER_OF_POINTS, nPoints,
|
||||
vtk::fileAttr::NUMBER_OF_POLYS, nPolys
|
||||
);
|
||||
|
||||
// 'points'
|
||||
{
|
||||
const uint64_t payLoad = (nPoints*3*sizeof(float));
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(nPoints);
|
||||
|
||||
format()
|
||||
.tag(vtk::fileTag::POINTS)
|
||||
.openDataArray<float, 3>(vtk::dataArrayAttr::POINTS)
|
||||
.closeTag();
|
||||
.beginDataArray<float, 3>(vtk::dataArrayAttr::POINTS);
|
||||
|
||||
format().writeSize(payLoad);
|
||||
|
||||
@ -253,12 +251,11 @@ void Foam::lumpedPointState::writeVTP
|
||||
// 'connectivity' - 4 points (ie, quad)
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (4*nPolys*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(4*nPolys);
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
for (label i=0; i < 4*nPolys; ++i)
|
||||
{
|
||||
format().write(i);
|
||||
@ -273,12 +270,11 @@ void Foam::lumpedPointState::writeVTP
|
||||
// = single quad
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad = (nPolys*sizeof(label));
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nPolys);
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
for (label i=0; i < nPolys; ++i)
|
||||
{
|
||||
const label off = 4 * (i+1);
|
||||
@ -292,16 +288,15 @@ void Foam::lumpedPointState::writeVTP
|
||||
format().endTag(vtk::fileTag::POLYS);
|
||||
|
||||
#if 0
|
||||
format().tag(vtk::fileTag::CELL_DATA);
|
||||
format().beginCellData();
|
||||
|
||||
// zone Id
|
||||
{
|
||||
const uint64_t payLoad = (points_.size()*sizeof(label));
|
||||
|
||||
format().openDataArray<label>("zoneId")
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nPolys);
|
||||
|
||||
format().beginDataArray<label>("zoneId");
|
||||
format().writeSize(payLoad);
|
||||
|
||||
for (label i=0; i < nPolys; ++i)
|
||||
{
|
||||
format().write(i);
|
||||
@ -311,18 +306,18 @@ void Foam::lumpedPointState::writeVTP
|
||||
format().endDataArray();
|
||||
}
|
||||
|
||||
format().endTag(vtk::fileTag::CELL_DATA);
|
||||
format().endCellData();
|
||||
#endif
|
||||
|
||||
format().endTag(vtk::fileTag::PIECE);
|
||||
format().endPiece();
|
||||
}
|
||||
|
||||
// Finally
|
||||
// could add a 'ghost' level above to visualize extrapolated values
|
||||
// draw as two triangles to distingush from real levels ...
|
||||
|
||||
format().endTag(vtk::fileTag::POLY_DATA);
|
||||
format().endVTKFile();
|
||||
format().endTag(vtk::fileTag::POLY_DATA)
|
||||
.endVTKFile();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -63,11 +63,10 @@ void Foam::fileFormats::VTKsurfaceFormatCore::writeHeader
|
||||
const UList<point>& pts
|
||||
)
|
||||
{
|
||||
vtk::legacy::fileHeader
|
||||
vtk::legacy::fileHeader<vtk::fileTag::POLY_DATA>
|
||||
(
|
||||
format,
|
||||
("surface written " + clock::dateTime()),
|
||||
vtk::fileTag::POLY_DATA
|
||||
("surface written " + clock::dateTime())
|
||||
);
|
||||
|
||||
vtk::legacy::beginPoints(format.os(), pts.size());
|
||||
|
||||
@ -41,16 +41,16 @@ void Foam::fileFormats::VTPsurfaceFormat<Face>::writePolys
|
||||
// 'connectivity'
|
||||
//
|
||||
{
|
||||
uint64_t payLoad = 0;
|
||||
label nVerts = 0;
|
||||
for (const auto& f : faces)
|
||||
{
|
||||
payLoad += f.size();
|
||||
nVerts += f.size();
|
||||
}
|
||||
|
||||
format.openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nVerts);
|
||||
|
||||
format.writeSize(payLoad * sizeof(label));
|
||||
format.beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format.writeSize(payLoad);
|
||||
|
||||
for (const auto& f : faces)
|
||||
{
|
||||
@ -66,12 +66,9 @@ void Foam::fileFormats::VTPsurfaceFormat<Face>::writePolys
|
||||
// 'offsets' (connectivity offsets)
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad(faces.size() * sizeof(label));
|
||||
|
||||
format
|
||||
.openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(faces.size());
|
||||
|
||||
format.beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format.writeSize(payLoad);
|
||||
|
||||
label off = 0;
|
||||
@ -129,16 +126,16 @@ void Foam::fileFormats::VTPsurfaceFormat<Face>::write
|
||||
// 'connectivity'
|
||||
//
|
||||
{
|
||||
uint64_t payLoad = 0;
|
||||
label nVerts = 0;
|
||||
for (const auto& f : faceLst)
|
||||
{
|
||||
payLoad += f.size();
|
||||
nVerts += f.size();
|
||||
}
|
||||
|
||||
format().openDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nVerts);
|
||||
|
||||
format().writeSize(payLoad * sizeof(label));
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::CONNECTIVITY);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
label faceIndex = 0;
|
||||
for (const surfZone& zone : zones)
|
||||
@ -160,12 +157,9 @@ void Foam::fileFormats::VTPsurfaceFormat<Face>::write
|
||||
// 'offsets' (connectivity offsets)
|
||||
//
|
||||
{
|
||||
const uint64_t payLoad(faceLst.size() * sizeof(label));
|
||||
|
||||
format()
|
||||
.openDataArray<label>(vtk::dataArrayAttr::OFFSETS)
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(faceLst.size());
|
||||
|
||||
format().beginDataArray<label>(vtk::dataArrayAttr::OFFSETS);
|
||||
format().writeSize(payLoad);
|
||||
|
||||
label off = 0, faceIndex = 0;
|
||||
|
||||
@ -69,25 +69,27 @@ void Foam::fileFormats::VTPsurfaceFormatCore::writeHeader
|
||||
format
|
||||
.xmlHeader()
|
||||
.xmlComment("surface written " + clock::dateTime())
|
||||
.beginVTKFile(vtk::fileTag::POLY_DATA, "0.1");
|
||||
.beginVTKFile<vtk::fileTag::POLY_DATA>();
|
||||
|
||||
// <Piece>
|
||||
format
|
||||
.openTag(vtk::fileTag::PIECE)
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POINTS, pts.size())
|
||||
.xmlAttr(vtk::fileAttr::NUMBER_OF_POLYS, nFaces)
|
||||
.closeTag();
|
||||
.tag
|
||||
(
|
||||
vtk::fileTag::PIECE,
|
||||
vtk::fileAttr::NUMBER_OF_POINTS, pts.size(),
|
||||
vtk::fileAttr::NUMBER_OF_POLYS, nFaces
|
||||
);
|
||||
|
||||
|
||||
// Points
|
||||
|
||||
const uint64_t payLoad = (pts.size()*3* sizeof(float));
|
||||
const uint64_t payLoad = vtk::sizeofData<float, 3>(pts.size());
|
||||
|
||||
format.tag(vtk::fileTag::POINTS)
|
||||
.openDataArray<float, 3>(vtk::dataArrayAttr::POINTS)
|
||||
.closeTag();
|
||||
.beginDataArray<float, 3>(vtk::dataArrayAttr::POINTS);
|
||||
|
||||
format.writeSize(payLoad);
|
||||
|
||||
vtk::writeList(format, pts);
|
||||
format.flush();
|
||||
|
||||
@ -102,15 +104,13 @@ void Foam::fileFormats::VTPsurfaceFormatCore::writeFooter
|
||||
vtk::formatter& format
|
||||
)
|
||||
{
|
||||
// Slight cheat. </Piece> too
|
||||
format.endTag(Foam::vtk::fileTag::PIECE);
|
||||
format.endPiece(); //<-- slight cheat. </Piece> too
|
||||
|
||||
format.endTag(vtk::fileTag::POLY_DATA)
|
||||
.endVTKFile();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Foam::fileFormats::VTPsurfaceFormatCore::writeCellData
|
||||
(
|
||||
vtk::formatter& format,
|
||||
@ -120,17 +120,17 @@ void Foam::fileFormats::VTPsurfaceFormatCore::writeCellData
|
||||
// Zone ids as CellData
|
||||
|
||||
// Number of faces covered by the zones
|
||||
uint64_t payLoad = 0;
|
||||
label nFaces = 0;
|
||||
for (const auto& z : zones)
|
||||
{
|
||||
payLoad += z.size();
|
||||
nFaces += z.size();
|
||||
}
|
||||
|
||||
format.tag(vtk::fileTag::CELL_DATA);
|
||||
format.openDataArray<label>("region")
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(nFaces);
|
||||
|
||||
format.writeSize(payLoad * sizeof(label));
|
||||
format.beginCellData();
|
||||
format.beginDataArray<label>("region");
|
||||
format.writeSize(payLoad);
|
||||
|
||||
label zoneId = 0;
|
||||
for (const surfZone& zone : zones)
|
||||
@ -145,7 +145,7 @@ void Foam::fileFormats::VTPsurfaceFormatCore::writeCellData
|
||||
format.flush();
|
||||
format.endDataArray();
|
||||
|
||||
format.endTag(vtk::fileTag::CELL_DATA);
|
||||
format.endCellData();
|
||||
}
|
||||
|
||||
|
||||
@ -157,11 +157,10 @@ void Foam::fileFormats::VTPsurfaceFormatCore::writeCellData
|
||||
{
|
||||
// Zone ids as CellData
|
||||
|
||||
format.tag(vtk::fileTag::CELL_DATA);
|
||||
format.openDataArray<label>("region")
|
||||
.closeTag();
|
||||
const uint64_t payLoad = vtk::sizeofData<label>(zoneIds.size());
|
||||
|
||||
const uint64_t payLoad(zoneIds.size() * sizeof(label));
|
||||
format.beginCellData();
|
||||
format.beginDataArray<label>("region");
|
||||
|
||||
format.writeSize(payLoad);
|
||||
vtk::writeList(format, zoneIds);
|
||||
@ -169,7 +168,7 @@ void Foam::fileFormats::VTPsurfaceFormatCore::writeCellData
|
||||
format.flush();
|
||||
format.endDataArray();
|
||||
|
||||
format.endTag(vtk::fileTag::CELL_DATA);
|
||||
format.endCellData();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user