1111from Rhino .DocObjects .ObjectColorSource import ColorFromLayer
1212from Rhino .DocObjects .ObjectMaterialSource import MaterialFromObject
1313
14- from compas .geometry import centroid_polygon
15- from compas .utilities import pairwise
1614from compas .artists import RobotModelArtist
1715
1816import compas_rhino
@@ -63,23 +61,7 @@ def create_geometry(self, geometry, name=None, color=None):
6361 if 'mesh_color.diffuse' in geometry .attributes :
6462 color = geometry .attributes ['mesh_color.diffuse' ]
6563
66- key_index = geometry .key_index ()
67- vertices = geometry .vertices_attributes ('xyz' )
68- faces = [[key_index [key ] for key in geometry .face_vertices (fkey )] for fkey in geometry .faces ()]
69- new_faces = []
70- for face in faces :
71- f = len (face )
72- if f == 3 :
73- new_faces .append (face + face [- 1 :])
74- elif f == 4 :
75- new_faces .append (face )
76- elif f > 4 :
77- centroid = len (vertices )
78- vertices .append (centroid_polygon ([vertices [index ] for index in face ]))
79- for a , b in pairwise (face + face [0 :1 ]):
80- new_faces .append ([centroid , a , b , b ])
81- else :
82- continue
64+ vertices , faces = geometry .to_vertices_and_faces (triangulated = False )
8365
8466 mesh = Rhino .Geometry .Mesh ()
8567
@@ -95,7 +77,7 @@ def create_geometry(self, geometry, name=None, color=None):
9577
9678 for v in vertices :
9779 mesh .Vertices .Add (* v )
98- for face in new_faces :
80+ for face in faces :
9981 mesh .Faces .AddFace (* face )
10082
10183 mesh .Normals .ComputeNormals ()
0 commit comments