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

Function tet_to_hex

scripts/tet_to_hex.py:11–48  ·  view source on GitHub ↗
(mesh)

Source from the content-addressed store, hash-verified

9import pymesh
10
11def tet_to_hex(mesh):
12 in_vertices = mesh.vertices;
13 in_voxels = mesh.voxels;
14 out_vertices = [];
15 out_voxels = [];
16
17 hexes = np.array([
18 [0, 6, 12, 4, 5, 11, 14, 13],
19 [4, 12, 8, 1, 13, 14, 10, 7],
20 [6, 3, 8, 12, 11, 9, 10, 14],
21 [5, 2, 9, 11, 13, 7, 10, 14]
22 ]);
23 for i,tet in enumerate(in_voxels):
24 corners = in_vertices[tet];
25 e01 = (corners[0] + corners[1]) / 2.0;
26 e02 = (corners[0] + corners[2]) / 2.0;
27 e03 = (corners[0] + corners[3]) / 2.0;
28 e12 = (corners[1] + corners[2]) / 2.0;
29 e13 = (corners[3] + corners[1]) / 2.0;
30 e23 = (corners[2] + corners[3]) / 2.0;
31 f0 = (corners[1] + corners[2] + corners[3]) / 3.0;
32 f1 = (corners[0] + corners[2] + corners[3]) / 3.0;
33 f2 = (corners[0] + corners[1] + corners[3]) / 3.0;
34 f3 = (corners[0] + corners[1] + corners[2]) / 3.0;
35 center = np.mean(corners, axis=0).reshape((1, -1));
36 out_vertices += [corners,
37 e01, e02, e03, e12, e13, e23,
38 f0, f1, f2, f3,
39 center];
40
41 out_voxels.append(hexes + i*15);
42
43 out_vertices = np.vstack(out_vertices);
44 out_voxels = np.vstack(out_voxels);
45 out_vertices, out_voxels, __ = pymesh.remove_duplicated_vertices_raw(
46 out_vertices, out_voxels);
47 mesh = pymesh.form_mesh(out_vertices, None, out_voxels);
48 return mesh;
49
50def parse_args():
51 parser = argparse.ArgumentParser(description=__doc__);

Callers 1

mainFunction · 0.85

Calls 2

enumerateFunction · 0.85
form_meshMethod · 0.45

Tested by

no test coverage detected