def volmesh_draw_faces(volmesh, keys=None, color=None, layer=None, clear_layer=False, redraw=True): """Draw the faces of a volmesh. Parameters ---------- volmesh : compas.datastructures.VolMesh A volmesh object. keys : list (None) A list of edge keys identifying which faces to draw. Default is to draw all faces. color : str, tuple, dict (None) The color specififcation for the faces. Colors should be specified in the form of a string (hex colors) or as a tuple of RGB components. To apply the same color to all faces, provide a single color specification. Individual colors can be assigned using a dictionary of key-color pairs. Missing keys will be assigned the default vertex color (``self.defaults['vertex.color']``). Default is use the color of the parent layer. layer : str (None) The layer in which the faces are drawn. Default is to draw in the current layer. clear_layer : bool (False) Clear the drawing layer. redraw : bool (True) Redraw the view after adding the faces. Examples -------- >>> volmesh_draw_faces(volmesh) >>> volmesh_draw_faces(volmesh, keys=volmesh.faces_on_boundary()) >>> volmesh_draw_faces(volmesh, color='#00ff00') >>> color = {key: (('#ff0000') if volmesh.vertex_is_on_boundary(key) else ('#00ff00')) for key in volmesh.faces()} >>> volmesh_draw_faces(volmesh, color=color) See Also -------- * compas_rhino.VolMeshArtist """ artist = VolMeshArtist(volmesh) artist.layer = layer if clear_layer: artist.clear_layer() artist.clear_faces() artist.draw_faces(color=color) if redraw: artist.redraw()
def volmesh_draw(volmesh, layer=None, clear_layer=False, vertexcolor=None, edgecolor=None, facecolor=None): """Draw a volmesh. Parameters ---------- volmesh : compas.datastructures.VolMesh A volmesh object. layer : str (None) The layer to draw in. Default is to draw in the current layer. clear_layer : bool (False) Clear the current layer. vertexcolor : str, tuple, list, dict (None) The vertex color specification. Default is to use the color of the parent layer. edgecolor : str, tuple, list, dict (None) The edge color specification. Default is to use the color of the parent layer. facecolor : str, tuple, list, dict (None) The face color specification. Default is to use the color of the parent layer. Examples -------- >>> volmesh_draw(volmesh) >>> volmesh_draw(volmesh, layer='SomeLayer') >>> volmesh_draw(volmesh, clear_layer=True) >>> volmesh_draw(volmesh, vertexcolor='#ff0000') >>> volmesh_draw(volmesh, edgecolor=(0, 255, 0)) >>> volmesh_draw(volmesh, facecolor={key: (0.0, 0.0, 0.5) for key in volmesh.faces()}) See Also -------- * compas_rhino.VolMeshArtist """ artist = VolMeshArtist(volmesh) artist.layer = layer if clear_layer: artist.clear_layer() artist.clear() artist.draw_vertices(color=vertexcolor) artist.draw_edges(color=edgecolor) artist.draw_faces(color=facecolor) artist.redraw()
# ============================================================================== # Main # ============================================================================== if __name__ == "__main__": import compas from compas.datastructures import VolMesh from compas_rhino.artists import VolMeshArtist volmesh = VolMesh.from_obj(compas.get('boxes.obj')) artist = VolMeshArtist(volmesh, layer='VolMeshArtist') artist.clear_layer() artist.draw_vertices() artist.redraw(0.0) artist.draw_vertexlabels() artist.redraw(1.0) artist.draw_faces() artist.redraw(1.0) artist.draw_facelabels() artist.redraw(1.0) artist.draw_edges() artist.redraw(1.0)
# 4. draw unified diagram # ------------------------------------------------------------------------------ while True: rs.EnableRedraw(True) alpha = rs.GetReal('unified diagram scale', minimum=0.01, maximum=1.0) if alpha is None: break if not alpha: break force_artist.clear_layer() form_artist.clear_layer() # 1. get colors ------------------------------------------------------------ hf_color = (0, 0, 0) uv_c_dict = get_force_colors_uv(forcediagram, formdiagram, gradient=True) hf_c_dict = get_force_colors_hf(forcediagram, formdiagram, uv_c_dict=uv_c_dict) # 2. compute unified diagram geometries ------------------------------------ # halffaces, prism_faces = volmesh_ud(forcediagram, formdiagram, scale=alpha) cells, prisms = volmesh_ud(forcediagram, formdiagram, scale=alpha) # 3. draw ------------------------------------------------------------------