ENH: When writing a triSurface to ascii stl or obj, exclude empty patches

This commit is contained in:
laurence
2013-05-08 12:09:48 +01:00
parent 45fd7105ff
commit cf26c828cc
2 changed files with 58 additions and 47 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,8 +52,12 @@ void triSurface::writeOBJ(const bool writeSorted, Ostream& os) const
// Print patch names as comment
forAll(myPatches, patchI)
{
os << "# " << patchI << " "
<< myPatches[patchI].name() << nl;
const surfacePatch& patch = myPatches[patchI];
if (patch.size() > 0)
{
os << "# " << patchI << " " << patch.name() << nl;
}
}
os << "#" << nl;
@ -77,14 +81,17 @@ void triSurface::writeOBJ(const bool writeSorted, Ostream& os) const
forAll(myPatches, patchI)
{
// Print all faces belonging to this patch
const surfacePatch& patch = myPatches[patchI];
os << "g " << myPatches[patchI].name() << nl;
// Print all faces belonging to this patch
if (patch.size() > 0)
{
os << "g " << patch.name() << nl;
for
(
label patchFaceI = 0;
patchFaceI < myPatches[patchI].size();
patchFaceI < patch.size();
patchFaceI++
)
{
@ -99,6 +106,7 @@ void triSurface::writeOBJ(const bool writeSorted, Ostream& os) const
}
}
}
}
else
{
// Get patch (=compact region) per face

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -43,6 +43,8 @@ void Foam::triSurface::writeSTLASCII(Ostream& os) const
// Print all faces belonging to this region
const surfacePatch& patch = myPatches[patchI];
if (patch.size() > 0)
{
os << "solid " << patch.name() << endl;
for
@ -78,6 +80,7 @@ void Foam::triSurface::writeSTLASCII(Ostream& os) const
os << "endsolid " << patch.name() << endl;
}
}
}
void Foam::triSurface::writeSTLBINARY(std::ostream& os) const