|
| 1 | +from compas.colors import Color |
| 2 | +from compas.datastructures import Mesh |
1 | 3 | from compas.geometry import Sphere |
2 | 4 | from compas.geometry import Translation |
3 | 5 | from compas.geometry import centroid_points |
4 | | -from compas.utilities import geometric_key |
| 6 | +from compas.tolerance import Tolerance |
5 | 7 | from compas_gmsh.models import ShapeModel |
6 | | -from compas_view2.app import App |
7 | | -from compas_view2.objects import Collection |
| 8 | +from compas_viewer import Viewer |
8 | 9 |
|
9 | 10 | # ============================================================================== |
10 | 11 | # Geometry |
|
35 | 36 |
|
36 | 37 | # replace by model method |
37 | 38 |
|
| 39 | +tol = Tolerance() |
| 40 | + |
38 | 41 | centroid_face = {} |
39 | 42 | for face in shell.faces(): |
40 | | - centroid_face[geometric_key(shell.face_centroid(face))] = face |
| 43 | + centroid_face[tol.geometric_key(shell.face_centroid(face))] = face |
41 | 44 |
|
42 | 45 | bottom_exterior = [] |
43 | 46 | bottom_interior = [] |
|
54 | 57 | top.append(tet) |
55 | 58 |
|
56 | 59 | for tet in bottom: |
57 | | - if any(geometric_key(centroid_points([tet.vertices[index] for index in face])) in centroid_face for face in tet.faces): |
| 60 | + if any(tol.geometric_key(centroid_points([tet.vertices[index] for index in face])) in centroid_face for face in tet.faces): |
58 | 61 | bottom_exterior.append(tet) |
59 | 62 | else: |
60 | 63 | bottom_interior.append(tet) |
61 | 64 |
|
62 | 65 | for tet in top: |
63 | | - if any(geometric_key(centroid_points([tet.vertices[index] for index in face])) in centroid_face for face in tet.faces): |
| 66 | + if any(tol.geometric_key(centroid_points([tet.vertices[index] for index in face])) in centroid_face for face in tet.faces): |
64 | 67 | top_exterior.append(tet) |
65 | 68 | else: |
66 | 69 | top_interior.append(tet) |
67 | 70 |
|
| 71 | +# ============================================================================== |
| 72 | +# This is a temp hack |
| 73 | +# ============================================================================== |
| 74 | + |
| 75 | +bottom_ext = Mesh() |
| 76 | +for tet in bottom_exterior: |
| 77 | + bottom_ext.join(Mesh.from_vertices_and_faces(tet.vertices, tet.faces), weld=False) |
| 78 | + |
| 79 | +bottom_int = Mesh() |
| 80 | +for tet in bottom_interior: |
| 81 | + bottom_int.join(Mesh.from_vertices_and_faces(tet.vertices, tet.faces), weld=False) |
| 82 | + |
| 83 | +top_ext = Mesh() |
| 84 | +for tet in top_exterior: |
| 85 | + top_ext.join(Mesh.from_vertices_and_faces(tet.vertices, tet.faces), weld=False) |
| 86 | + |
| 87 | +top_int = Mesh() |
| 88 | +for tet in top_interior: |
| 89 | + top_int.join(Mesh.from_vertices_and_faces(tet.vertices, tet.faces), weld=False) |
| 90 | + |
68 | 91 | # ============================================================================== |
69 | 92 | # Visualization with viewer |
70 | 93 | # ============================================================================== |
71 | 94 |
|
72 | | -viewer = App(width=1600, height=900) |
73 | | -viewer.view.camera.position = [0, -8, 0] |
74 | | -viewer.view.camera.look_at([0, 0, 0]) |
| 95 | +viewer = Viewer() |
| 96 | + |
| 97 | +viewer.renderer.camera.target = [0, 0, 0] |
| 98 | +viewer.renderer.camera.position = [0, -8, 0] |
75 | 99 |
|
76 | 100 | T = Translation.from_vector([0, 0, 0.5]) |
77 | | -for tet in top: |
78 | | - tet.transform(T) |
| 101 | +top_ext.transform(T) |
| 102 | +top_int.transform(T) |
79 | 103 |
|
80 | 104 | T = Translation.from_vector([0, 0, -0.5]) |
81 | | -for tet in bottom: |
82 | | - tet.transform(T) |
83 | | - |
84 | | -viewer.add(Collection(bottom_exterior), facecolor=(1, 0, 0)) |
85 | | -viewer.add(Collection(bottom_interior)) |
86 | | - |
87 | | -viewer.add(Collection(top_exterior), facecolor=(0, 1, 0)) |
88 | | -viewer.add(Collection(top_interior)) |
| 105 | +bottom_ext.transform(T) |
| 106 | +bottom_int.transform(T) |
89 | 107 |
|
90 | | -# viewer.add(shell) |
| 108 | +viewer.scene.add(bottom_ext, facecolor=Color.red(), show_points=False) |
| 109 | +viewer.scene.add(bottom_int, show_points=False) |
| 110 | +viewer.scene.add(top_ext, facecolor=Color.green(), show_points=False) |
| 111 | +viewer.scene.add(top_int, show_points=False) |
91 | 112 |
|
92 | | -viewer.run() |
| 113 | +viewer.show() |
0 commit comments