Skip to content
Snippets Groups Projects
Commit 62b80fe4 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Displace VTK writer in its own module

parent 49baed3d
Branches
Tags
1 merge request!37Feature/language
......@@ -35,6 +35,7 @@ add_library(
EmbeddedData.cpp
MathModule.cpp
MeshModule.cpp
VTKModule.cpp
ModuleRepository.cpp
PugsParser.cpp)
......
......@@ -27,38 +27,4 @@ MeshModule::MeshModule()
}}
));
this->_addBuiltinFunction("writeVTK",
std::make_shared<BuiltinFunctionEmbedder<void, std::shared_ptr<IMesh>, std::string>>(
std::function<void(std::shared_ptr<IMesh>, std::string)>{
[](std::shared_ptr<IMesh> p_mesh, std::string filename) -> void {
VTKWriter writer(filename, 0);
switch (p_mesh->dimension()) {
case 1: {
using MeshType = Mesh<Connectivity<1>>;
const MeshType& mesh = dynamic_cast<const MeshType&>(*p_mesh);
writer.write(mesh, OutputNamedItemValueSet{}, 0);
break;
}
case 2: {
using MeshType = Mesh<Connectivity<2>>;
const MeshType& mesh = dynamic_cast<const MeshType&>(*p_mesh);
writer.write(mesh, OutputNamedItemValueSet{}, 0);
break;
}
case 3: {
using MeshType = Mesh<Connectivity<3>>;
const MeshType& mesh = dynamic_cast<const MeshType&>(*p_mesh);
writer.write(mesh, OutputNamedItemValueSet{}, 0);
break;
}
}
}
}));
}
......@@ -9,6 +9,7 @@
#include <MathModule.hpp>
#include <MeshModule.hpp>
#include <VTKModule.hpp>
void
ModuleRepository::_subscribe(std::unique_ptr<IModule> m)
......@@ -21,6 +22,7 @@ ModuleRepository::ModuleRepository()
{
this->_subscribe(std::make_unique<MathModule>());
this->_subscribe(std::make_unique<MeshModule>());
this->_subscribe(std::make_unique<VTKModule>());
}
template <typename NameEmbedderMapT, typename EmbedderTableT>
......
#include <VTKModule.hpp>
#include <BuiltinFunctionEmbedder.hpp>
#include <TypeDescriptor.hpp>
#include <GmshReader.hpp>
#include <Connectivity.hpp>
#include <Mesh.hpp>
#include <VTKWriter.hpp>
VTKModule::VTKModule()
{
this->_addBuiltinFunction("writeVTK",
std::make_shared<BuiltinFunctionEmbedder<void, std::shared_ptr<IMesh>, std::string>>(
std::function<void(std::shared_ptr<IMesh>, std::string)>{
[](std::shared_ptr<IMesh> p_mesh, std::string filename) -> void {
VTKWriter writer(filename, 0);
switch (p_mesh->dimension()) {
case 1: {
using MeshType = Mesh<Connectivity<1>>;
const MeshType& mesh = dynamic_cast<const MeshType&>(*p_mesh);
writer.write(mesh, OutputNamedItemValueSet{}, 0);
break;
}
case 2: {
using MeshType = Mesh<Connectivity<2>>;
const MeshType& mesh = dynamic_cast<const MeshType&>(*p_mesh);
writer.write(mesh, OutputNamedItemValueSet{}, 0);
break;
}
case 3: {
using MeshType = Mesh<Connectivity<3>>;
const MeshType& mesh = dynamic_cast<const MeshType&>(*p_mesh);
writer.write(mesh, OutputNamedItemValueSet{}, 0);
break;
}
}
}
}));
}
#ifndef VTK_MODULE_HPP
#define VTK_MODULE_HPP
#include <PugsMacros.hpp>
#include <BuiltinModule.hpp>
class VTKModule : public BuiltinModule
{
public:
std::string_view
name() const final
{
return "vtk";
}
VTKModule();
~VTKModule() = default;
};
#endif // VTK_MODULE_HPP
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment