| 12 | using namespace PyMesh; |
| 13 | |
| 14 | Elements::Ptr Elements::adapt(Mesh::Ptr mesh) { |
| 15 | if (mesh->get_num_voxels() > 0) { |
| 16 | const size_t vertex_per_voxel = mesh->get_vertex_per_voxel(); |
| 17 | switch (vertex_per_voxel) { |
| 18 | case 4: |
| 19 | return Ptr(new TetrahedronElements(mesh)); |
| 20 | default: |
| 21 | std::stringstream err_msg; |
| 22 | err_msg << "Voxel with " << vertex_per_voxel |
| 23 | << " vertices is not supported yet."; |
| 24 | throw NotImplementedError(err_msg.str()); |
| 25 | } |
| 26 | } else { |
| 27 | const size_t vertex_per_face = mesh->get_vertex_per_face(); |
| 28 | switch (vertex_per_face) { |
| 29 | case 3: |
| 30 | return Ptr(new TriangleElements(mesh)); |
| 31 | default: |
| 32 | std::stringstream err_msg; |
| 33 | err_msg << "Face with " << vertex_per_face |
| 34 | << " vertices is not supported yet."; |
| 35 | throw NotImplementedError(err_msg.str()); |
| 36 | } |
| 37 | } |
| 38 | } |
| 39 | |
| 40 | Elements::Ptr Elements::adapt_boundary(Mesh::Ptr mesh) { |
| 41 | if (mesh->get_num_voxels() > 0) { |
nothing calls this directly
no test coverage detected