Subdivide the input mesh. Args: mesh: Input triangle mesh. order: (optional) Subdivision order. method: (optional) Subdivision method. Choices are "simple" and "loop". Returns: Returns the subdivided mesh. The per-face attribute "ori_face_index" t
(mesh, order=1, method="simple")
| 2 | from ..meshio import form_mesh |
| 3 | |
| 4 | def subdivide(mesh, order=1, method="simple"): |
| 5 | """ Subdivide the input mesh. |
| 6 | |
| 7 | Args: |
| 8 | mesh: Input triangle mesh. |
| 9 | order: (optional) Subdivision order. |
| 10 | method: (optional) Subdivision method. Choices are "simple" and "loop". |
| 11 | |
| 12 | Returns: |
| 13 | Returns the subdivided mesh. The per-face attribute "ori_face_index" |
| 14 | tracks the original face index from the input mesh. |
| 15 | |
| 16 | """ |
| 17 | subdiv = PyMesh.Subdivision.create(method) |
| 18 | subdiv.subdivide(mesh.vertices, mesh.faces, order) |
| 19 | |
| 20 | vertices = subdiv.get_vertices() |
| 21 | faces = subdiv.get_faces() |
| 22 | ori_face_indices = subdiv.get_face_indices().ravel() |
| 23 | |
| 24 | subdivided_mesh = form_mesh(vertices, faces) |
| 25 | subdivided_mesh.add_attribute("ori_face_index") |
| 26 | subdivided_mesh.set_attribute("ori_face_index", ori_face_indices) |
| 27 | return subdivided_mesh |
no test coverage detected