Printing of bounding box of patches
This commit is contained in:
parent
9923752218
commit
4b5809ea7b
@ -101,7 +101,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (!noTopology)
|
if (!noTopology)
|
||||||
{
|
{
|
||||||
noFailedChecks += checkTopology(mesh, allTopology);
|
noFailedChecks += checkTopology(mesh, allTopology, allGeometry);
|
||||||
}
|
}
|
||||||
|
|
||||||
noFailedChecks += checkGeometry(mesh, allGeometry);
|
noFailedChecks += checkGeometry(mesh, allGeometry);
|
||||||
|
@ -7,7 +7,12 @@
|
|||||||
#include "pointSet.H"
|
#include "pointSet.H"
|
||||||
#include "IOmanip.H"
|
#include "IOmanip.H"
|
||||||
|
|
||||||
Foam::label Foam::checkTopology(const polyMesh& mesh, const bool allTopology)
|
Foam::label Foam::checkTopology
|
||||||
|
(
|
||||||
|
const polyMesh& mesh,
|
||||||
|
const bool allTopology,
|
||||||
|
const bool allGeometry
|
||||||
|
)
|
||||||
{
|
{
|
||||||
label noFailedChecks = 0;
|
label noFailedChecks = 0;
|
||||||
|
|
||||||
@ -142,39 +147,38 @@ Foam::label Foam::checkTopology(const polyMesh& mesh, const bool allTopology)
|
|||||||
<< setw(20) << "Patch"
|
<< setw(20) << "Patch"
|
||||||
<< setw(9) << "Faces"
|
<< setw(9) << "Faces"
|
||||||
<< setw(9) << "Points"
|
<< setw(9) << "Points"
|
||||||
<< " Surface" << endl;
|
<< setw(34) << "Surface topology";
|
||||||
|
if (allGeometry)
|
||||||
|
{
|
||||||
|
Pout<< " Bounding box";
|
||||||
|
}
|
||||||
|
Pout<< endl;
|
||||||
|
|
||||||
forAll(patches, patchI)
|
forAll(patches, patchI)
|
||||||
{
|
{
|
||||||
const polyPatch& pp = patches[patchI];
|
const polyPatch& pp = patches[patchI];
|
||||||
|
|
||||||
|
Pout<< " "
|
||||||
|
<< setw(20) << pp.name()
|
||||||
|
<< setw(9) << pp.size()
|
||||||
|
<< setw(9) << pp.nPoints();
|
||||||
|
|
||||||
|
|
||||||
primitivePatch::surfaceTopo pTyp = pp.surfaceType();
|
primitivePatch::surfaceTopo pTyp = pp.surfaceType();
|
||||||
|
|
||||||
if (pp.size() == 0)
|
if (pp.size() == 0)
|
||||||
{
|
{
|
||||||
Pout<< " "
|
Pout<< setw(34) << "ok (empty)";
|
||||||
<< setw(20) << pp.name()
|
|
||||||
<< setw(9) << pp.size()
|
|
||||||
<< setw(9) << pp.nPoints()
|
|
||||||
<< " ok (empty)" << endl;
|
|
||||||
}
|
}
|
||||||
else if (pTyp == primitivePatch::MANIFOLD)
|
else if (pTyp == primitivePatch::MANIFOLD)
|
||||||
{
|
{
|
||||||
if (pp.checkPointManifold(true, &points))
|
if (pp.checkPointManifold(true, &points))
|
||||||
{
|
{
|
||||||
Pout<< " "
|
Pout<< setw(34) << "multiply connected (shared point)";
|
||||||
<< setw(20) << pp.name()
|
|
||||||
<< setw(9) << pp.size()
|
|
||||||
<< setw(9) << pp.nPoints()
|
|
||||||
<< " multiply connected (shared point)" << endl;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Pout<< " "
|
Pout<< setw(34) << "ok (closed singly connected)";
|
||||||
<< setw(20) << pp.name()
|
|
||||||
<< setw(9) << pp.size()
|
|
||||||
<< setw(9) << pp.nPoints()
|
|
||||||
<< " ok (closed singly connected surface)" << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add points on non-manifold edges to make set complete
|
// Add points on non-manifold edges to make set complete
|
||||||
@ -186,22 +190,35 @@ Foam::label Foam::checkTopology(const polyMesh& mesh, const bool allTopology)
|
|||||||
|
|
||||||
if (pTyp == primitivePatch::OPEN)
|
if (pTyp == primitivePatch::OPEN)
|
||||||
{
|
{
|
||||||
Pout<< " "
|
Pout<< setw(34) << "ok (non-closed singly connected)";
|
||||||
<< setw(20) << pp.name()
|
|
||||||
<< setw(9) << pp.size()
|
|
||||||
<< setw(9) << pp.nPoints()
|
|
||||||
<< " ok (not multiply connected)" << endl;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Pout<< " "
|
Pout<< setw(34) << "multiply connected (shared edge)";
|
||||||
<< setw(20) << pp.name()
|
|
||||||
<< setw(9) << pp.size()
|
|
||||||
<< setw(9) << pp.nPoints()
|
|
||||||
<< " multiply connected surface (shared edge)"
|
|
||||||
<< endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (allGeometry)
|
||||||
|
{
|
||||||
|
const pointField& pts = pp.points();
|
||||||
|
const labelList& mp = pp.meshPoints();
|
||||||
|
|
||||||
|
boundBox bb(vector::zero, vector::zero);
|
||||||
|
if (returnReduce(mp.size(), sumOp<label>()) > 0)
|
||||||
|
{
|
||||||
|
bb.min() = pts[mp[0]];
|
||||||
|
bb.max() = pts[mp[0]];
|
||||||
|
for (label i = 1; i < mp.size(); i++)
|
||||||
|
{
|
||||||
|
bb.min() = min(bb.min(), pts[mp[i]]);
|
||||||
|
bb.max() = max(bb.max(), pts[mp[i]]);
|
||||||
|
}
|
||||||
|
reduce(bb.min(), minOp<vector>());
|
||||||
|
reduce(bb.max(), maxOp<vector>());
|
||||||
|
}
|
||||||
|
Pout<< ' ' << bb;
|
||||||
|
}
|
||||||
|
Pout<< endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (points.size() > 0)
|
if (points.size() > 0)
|
||||||
|
@ -4,5 +4,5 @@ namespace Foam
|
|||||||
{
|
{
|
||||||
class polyMesh;
|
class polyMesh;
|
||||||
|
|
||||||
label checkTopology(const polyMesh& mesh, const bool allTopology);
|
label checkTopology(const polyMesh&, const bool, const bool);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user