MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / subdivide_quad

Function subdivide_quad

python/pymesh/meshutils/generate_box_mesh.py:100–128  ·  view source on GitHub ↗

Vertex indices Edge indices 2 3 +------+ 2 +------+ | | 3 | | 1 | | | | 0 +------+ 1 +------+ 0

(corners, subdiv_order)

Source from the content-addressed store, hash-verified

98 return mesh, quad_indices
99
100def subdivide_quad(corners, subdiv_order):
101 """
102 Vertex indices Edge indices
103 2
104 3 +------+ 2 +------+
105 | | 3 | | 1
106 | | | |
107 0 +------+ 1 +------+
108 0
109 """
110 if subdiv_order == 0:
111 return [corners]
112 face_center = np.mean(corners, axis=0)
113 edge_centers = [
114 0.5 * (corners[0] + corners[1]),
115 0.5 * (corners[1] + corners[2]),
116 0.5 * (corners[2] + corners[3]),
117 0.5 * (corners[3] + corners[0]) ]
118
119 subcells = [
120 [corners[0], edge_centers[0], face_center, edge_centers[3]],
121 [edge_centers[0], corners[1], edge_centers[1], face_center],
122 [face_center, edge_centers[1], corners[2], edge_centers[2]],
123 [edge_centers[3], face_center, edge_centers[2], corners[3]] ]
124
125 subcell_corners = []
126 for cell in subcells:
127 subcell_corners += subdivide_quad(cell, subdiv_order-1)
128 return subcell_corners
129
130def split_quad_into_tris(corners):
131 vertices = corners

Callers 1

generate_2D_box_meshFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected