From 310027299151408fe233d577e6ad1332488c3fac Mon Sep 17 00:00:00 2001 From: Henry <henry.korb@geo.uu.se> Date: Tue, 25 Jan 2022 20:32:49 +0100 Subject: [PATCH] adds bindings for geometries from grid_generator --- pythonbindings/src/gpu/gpu.cpp | 2 + .../src/gpu/submodules/grid_generator.cpp | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 pythonbindings/src/gpu/submodules/grid_generator.cpp diff --git a/pythonbindings/src/gpu/gpu.cpp b/pythonbindings/src/gpu/gpu.cpp index ff07dce0f..1dd960dbb 100644 --- a/pythonbindings/src/gpu/gpu.cpp +++ b/pythonbindings/src/gpu/gpu.cpp @@ -12,6 +12,7 @@ #include "submodules/kernel_factory.cpp" #include "submodules/pre_processor_factory.cpp" #include "submodules/file_writer.cpp" +#include "submodules/grid_generator.cpp" namespace gpu { @@ -33,6 +34,7 @@ namespace gpu kernel_factory::makeModule(gpuModule); pre_processor_factory::makeModule(gpuModule); file_writer::makeModule(gpuModule); + grid_generator::makeModule(gpuModule); return gpuModule; } } \ No newline at end of file diff --git a/pythonbindings/src/gpu/submodules/grid_generator.cpp b/pythonbindings/src/gpu/submodules/grid_generator.cpp new file mode 100644 index 000000000..b9babe1d6 --- /dev/null +++ b/pythonbindings/src/gpu/submodules/grid_generator.cpp @@ -0,0 +1,38 @@ +#include <pybind11/pybind11.h> +#include "gpu/GridGenerator/geometries/Object.h" +#include "gpu/GridGenerator/geometries/BoundingBox/BoundingBox.h" +#include "gpu/GridGenerator/geometries/Conglomerate/Conglomerate.h" +#include "gpu/GridGenerator/geometries/Cuboid/Cuboid.h" +#include "gpu/GridGenerator/geometries/Sphere/Sphere.h" +#include "gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.h" + +namespace grid_generator +{ + namespace py = pybind11; + py::module makeModule(py::module_ &parentModule) + { + py::module gridGeneratorModule = parentModule.def_submodule("grid_generator"); + + py::class_<BoundingBox>(gridGeneratorModule, "BoundingBox") + .def(py::init<real, real, real, real, real, real>(),"min_x","max_x","min_y","max_y","min_z","max_z"); + + py::class_<Object, std::shared_ptr<Object>>(gridGeneratorModule, "Object"); + + py::class_<Conglomerate, Object, std::shared_ptr<Conglomerate>>(gridGeneratorModule, "Conglomerate") + .def("make_shared", &Conglomerate::makeShared, py::return_value_policy::reference) + .def("add", &Conglomerate::add) + .def("subtract", &Conglomerate::subtract); + + py::class_<Cuboid, Object, std::shared_ptr<Cuboid>>(gridGeneratorModule, "Cuboid") + .def(py::init<const double&, const double&, const double&, const double&, const double&, const double&>(), + "min_x1", "min_x2", "min_x3", "max_x1", "max_x2", "max_x3"); + + py::class_<Sphere, Object, std::shared_ptr<Sphere>>(gridGeneratorModule, "Sphere") + .def("make_shared", &Sphere::makeShared, py::return_value_policy::reference); + + py::class_<TriangularMesh, Object, std::shared_ptr<TriangularMesh>>(gridGeneratorModule, "TriangularMesh") + .def("make", &TriangularMesh::make, py::return_value_policy::reference); + + return gridGeneratorModule; + } +} -- GitLab