31 const auto &vertices = self.getV3Ds();
32 const auto &triangles = self.getTriangles();
33 const size_t &numberTriangles = triangles.size() / 3;
34 npy_intp dims[3] = {
static_cast<int>(numberTriangles), 3, 3};
35 auto *meshCoords =
new double[dims[0] * dims[1] * dims[2]];
36 for (
size_t iTriangle = 0; iTriangle < numberTriangles; ++iTriangle) {
37 for (
size_t corner = 0; corner < 3; corner++) {
38 auto coords = std::vector<double>(vertices[triangles[(3 * iTriangle) + corner]]);
39 for (
size_t xyz = 0; xyz < 3; xyz++) {
40 meshCoords[iTriangle * 3 * 3 + corner * 3 + xyz] = coords[xyz];
44 PyObject *ndarray =
Impl::wrapWithNDArray(meshCoords, 3, dims, NumpyWrapMode::ReadWrite, OwnershipMode::Python);
46 return boost::python::object(handle<>(ndarray));
PyObject * wrapWithNDArray(const ElementType *, const int ndims, Py_intptr_t *dims, const NumpyWrapMode mode, const OwnershipMode oMode=OwnershipMode::Cpp)
Defines the wrapWithNDArray specialization for C array types.