From e65ddd4b5c5bb350ccfa6315137c08850ffd99a3 Mon Sep 17 00:00:00 2001 From: Sebastian Eibl <sebastian.eibl@fau.de> Date: Thu, 18 Jan 2018 17:37:40 +0100 Subject: [PATCH] added body filter to PeVTKMeshWriter --- src/mesh/pe/vtk/PeVTKMeshWriter.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mesh/pe/vtk/PeVTKMeshWriter.h b/src/mesh/pe/vtk/PeVTKMeshWriter.h index 1f1ba9102..55721ae20 100644 --- a/src/mesh/pe/vtk/PeVTKMeshWriter.h +++ b/src/mesh/pe/vtk/PeVTKMeshWriter.h @@ -124,6 +124,9 @@ public: void addVertexPropertyRank() { meshWriter_.addDataSource( make_shared<RankVertexDataSource<MeshType>>() ); } void addFacePropertyRank() { meshWriter_.addDataSource( make_shared<RankFaceDataSource<MeshType>>() ); } + void setBodyFilter( const std::function<bool(const walberla::pe::RigidBody&)>& filter) { bodyFilter_ = filter; } + const std::function<bool(const walberla::pe::RigidBody&)>& getBodyFilter() const { return bodyFilter_; } + protected: template< typename T > @@ -183,6 +186,7 @@ protected: const walberla::pe::BodyStorage & bodyStorage = (*storage)[0]; for(auto bodyIt = bodyStorage.begin(); bodyIt != bodyStorage.end(); ++bodyIt) { + if (!bodyFilter_(**bodyIt)) continue; newVertices.clear(); newFaces.clear(); tesselation_( **bodyIt, *mesh_, newVertices, newFaces ); @@ -204,6 +208,7 @@ protected: DistributedVTKMeshWriter<MeshType> meshWriter_; BodyPointerFPropManager faceBodyPointer_; BodyPointerVPropManager vertexBodyPointer_; + std::function<bool(const walberla::pe::RigidBody&)> bodyFilter_ = [](const walberla::pe::RigidBody&){ return true; }; }; } // namespace pe -- GitLab