1- import time
2-
3- try :
4- import bpy
5- except ImportError :
6- pass
7-
8- from compas_blender .utilities import clear_layer
9- from compas_blender .artists .mixins import VertexArtist
10- from compas_blender .artists .mixins import EdgeArtist
11- from compas_blender .artists .mixins import FaceArtist
12-
13-
14- __author__ = [
'Andrew Liew <[email protected] >' ]
15- __copyright__ = 'Copyright 2017, Block Research Group - ETH Zurich'
16- __license__ = 'MIT License'
17- 18-
19-
20- __all__ = ['MeshArtist' ]
21-
22-
23- class MeshArtist (FaceArtist , EdgeArtist , VertexArtist ):
24- """"""
25-
26- def __init__ (self , mesh , layer = 0 ):
27- self .datastructure = mesh
28- self .layer = layer
29- self .defaults = {
30- 'color.vertex' : [1 , 0 , 0 ],
31- 'color.face' : [1 , 1 , 1 ],
32- 'color.edge' : [0 , 0 , 1 ]}
33-
34- def redraw (self , timeout = None ):
35- """Redraw the Blender view."""
36- if timeout :
37- time .sleep (timeout )
38- bpy .ops .wm .redraw_timer (type = 'DRAW_WIN_SWAP' , iterations = 1 )
39-
40- def clear_layer (self ):
41- clear_layer (layer = self .layer )
42-
43- def clear (self ):
44- self .clear_vertices ()
45- self .clear_faces ()
46- self .clear_edges ()
47-
48-
49- # ==============================================================================
50- # Main
51- # ==============================================================================
52-
53- if __name__ == "__main__" :
54-
55- from compas_blender .utilities import get_objects
56-
57- from compas_blender .helpers import mesh_from_bmesh
58-
59- mesh = mesh_from_bmesh (bmesh = get_objects (layer = 0 )[0 ])
60-
61- meshartist = MeshArtist (mesh = mesh , layer = 1 )
62-
63- meshartist .clear_layer ()
64-
65- meshartist .draw_vertices ()
66- meshartist .draw_vertexlabels ()
67- meshartist .clear_vertices (keys = [4 ])
68- meshartist .clear_vertexlabels (keys = [6 ])
69-
70- meshartist .draw_edges ()
71- meshartist .draw_edgelabels ()
72- meshartist .clear_edges (keys = [(0 , 4 )])
73- meshartist .clear_edgelabels (keys = [(5 , 4 )])
74-
75- meshartist .draw_faces ()
76- meshartist .draw_facelabels ()
77- meshartist .clear_faces (keys = [2 , 3 ])
78- meshartist .clear_facelabels (keys = [5 ])
1+
2+ from __future__ import absolute_import
3+ from __future__ import division
4+ from __future__ import print_function
5+
6+ from compas_blender .artists import Artist
7+ from compas_blender .artists .mixins import VertexArtist
8+ from compas_blender .artists .mixins import EdgeArtist
9+ from compas_blender .artists .mixins import FaceArtist
10+
11+
12+ __all__ = [
13+ 'MeshArtist' ,
14+ ]
15+
16+
17+ class MeshArtist (FaceArtist , EdgeArtist , VertexArtist , Artist ):
18+
19+ __module__ = "compas_blender.artists"
20+
21+ def __init__ (self , mesh , layer = None ):
22+ super (MeshArtist , self ).__init__ (layer = layer )
23+
24+ self .mesh = mesh
25+ self .defaults .update ({
26+ 'color.vertex' : [255 , 255 , 255 ],
27+ 'color.edge' : [0 , 0 , 0 ],
28+ 'color.face' : [110 , 110 , 110 ],
29+ })
30+
31+
32+ @property
33+ def mesh (self ):
34+
35+ return self .datastructure
36+
37+
38+ @mesh .setter
39+ def mesh (self , mesh ):
40+
41+ self .datastructure = mesh
42+
43+
44+ def draw (self ):
45+
46+ raise NotImplementedError
47+
48+
49+ def clear (self ):
50+
51+ self .clear_vertices ()
52+ self .clear_faces ()
53+ self .clear_edges ()
54+
55+
56+ # ==============================================================================
57+ # Main
58+ # ==============================================================================
59+
60+ if __name__ == "__main__" :
61+
62+ import compas
63+
64+ from compas .datastructures import Mesh
65+
66+
67+ mesh = Mesh .from_obj (compas .get ('quadmesh.obj' ))
68+
69+ artist = MeshArtist (mesh )
70+
71+ # artist.clear()
72+
73+ artist .draw_vertices (radius = 0.01 )
74+ artist .draw_vertexlabels ()
75+ # artist.clear_vertexlabels()
76+
77+ # artist.draw_edges(width=0.01)
78+ # artist.draw_edgelabels()
79+ # artist.clear_edgelabels()
80+
81+ # artist.draw_faces()
82+ # artist.draw_facelabels()
83+ # artist.clear_facelabels()
0 commit comments