diff --git a/libsrc/meshing/python_mesh.cpp b/libsrc/meshing/python_mesh.cpp index 216119f3..d2c85f11 100644 --- a/libsrc/meshing/python_mesh.cpp +++ b/libsrc/meshing/python_mesh.cpp @@ -854,6 +854,26 @@ DLL_HEADER void ExportNetgenMeshing(py::module &m) static_cast (&Mesh::Points), py::return_value_policy::reference) + .def("Coordinates", [](Mesh & self) { + size_t shape[2] = { self.Points().Size(), size_t(self.GetDimension()) }; + size_t stride[2] = { sizeof(self.Points()[0]), sizeof(double) }; + + return py::memoryview::from_buffer + (&self.Points()[PointIndex::BASE](0), sizeof(double), + py::format_descriptor::value, + { self.Points().Size(), size_t(self.GetDimension()) }, + { sizeof(self.Points()[1]), sizeof(double) } ); + + /* + // how to avoid copying array ? + return py::array + ( + shape, stride, + &self.Points()[PointIndex::BASE](0) // , borrowed_t{} // how to use borrow ? + ); + */ + }) + .def("FaceDescriptor", static_cast (&Mesh::GetFaceDescriptor), py::return_value_policy::reference) .def("GetNFaceDescriptors", &Mesh::GetNFD)