diff --git a/cpp/CgalLabelledImage.cpp b/cpp/CgalLabelledImage.cpp index aa7dd2b9a7daea57fe6d5dc7ed670b49bd482bf4..ed754bac786d5353dbf01dd049109c36f9425392 100644 --- a/cpp/CgalLabelledImage.cpp +++ b/cpp/CgalLabelledImage.cpp @@ -3,7 +3,7 @@ #include "CgalLabelledImage.h" -int buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize) +CGAL::Image_3 buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize) { _image* image = _createImage( shape(0), shape(1), shape(2), 1, @@ -20,7 +20,6 @@ int buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, } } } - CGAL::Image_3 cgal_image(image); - return 0; + return CGAL::Image_3(image); } diff --git a/cpp/CgalLabelledImage.h b/cpp/CgalLabelledImage.h index 8a8200dc56443c483b1dce1ae348dacc68ac20ca..ba288125b6cc28bddac3b9ca0f3637b9de98f7d6 100644 --- a/cpp/CgalLabelledImage.h +++ b/cpp/CgalLabelledImage.h @@ -5,4 +5,4 @@ #include <Eigen/Dense> -int buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize={1.0, 1.0, 1.0}); \ No newline at end of file +CGAL::Image_3 buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize={1.0, 1.0, 1.0}); \ No newline at end of file diff --git a/wrp/LabelledTetrahedralMeshWrapper.cpp b/wrp/LabelledTetrahedralMeshWrapper.cpp index 6c9a1a6cf949c889e0319a3a0ff4ffcc35b4b6a3..744befaa7970b07c328b7915dc0e43d36e27d1f4 100644 --- a/wrp/LabelledTetrahedralMeshWrapper.cpp +++ b/wrp/LabelledTetrahedralMeshWrapper.cpp @@ -7,6 +7,16 @@ namespace py = pybind11; + +int cgalLabelledImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize) +{ + CGAL::Image_3 image = buildCgalImage(image_array, shape, voxelsize); + if ((image.xdim() != shape(0)) || (image.ydim() != shape(1)) || (image.zdim() != shape(2))) { + return EXIT_FAILURE; + } + return 0; +} + PYBIND11_MODULE(_wrp, m) { py::class_<LabelledTetrahedralMesh>(m, "LabelledTetrahedralMesh") .def(py::init<>()) @@ -18,5 +28,5 @@ PYBIND11_MODULE(_wrp, m) { m.def("make_tetrahedron", &makeTetrahedron); - m.def("build_cgal_image", &buildCgalImage, py::arg("image_array"), py::arg("shape"), py::arg("voxelsize")); + m.def("build_cgal_image", &cgalLabelledImage, py::arg("image_array"), py::arg("shape"), py::arg("voxelsize")); } \ No newline at end of file