Skip to content

Commit 50cbead

Browse files
committed
redraw and clear plugins
1 parent 7a16821 commit 50cbead

File tree

2 files changed

+31
-13
lines changed

2 files changed

+31
-13
lines changed

src/compas_blender/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def clear():
4242
bpy.data.collections.remove(block)
4343

4444

45-
def redraw(self):
45+
def redraw():
4646
"""Trigger a redraw."""
4747
bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1)
4848

src/compas_blender/artists/__init__.py

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
"""
6565
import inspect
6666

67+
import compas_blender
68+
6769
from compas.plugins import plugin
6870
from compas.artists import Artist
6971
from compas.artists import DataArtistNotRegistered
@@ -94,21 +96,37 @@
9496
from .torusartist import TorusArtist
9597

9698

99+
@plugin(category='drawing-utils', pluggable_name='clear', requires=['bpy'])
100+
def clear_blender():
101+
compas_blender.clear()
102+
103+
104+
@plugin(category='drawing-utils', pluggable_name='redraw', requires=['bpy'])
105+
def redraw_blender():
106+
compas_blender.redraw()
107+
108+
109+
artists_registered = False
110+
111+
97112
@plugin(category='factories', pluggable_name='new_artist', tryfirst=True, requires=['bpy'])
98113
def new_artist_blender(cls, *args, **kwargs):
99114
# "lazy registration" seems necessary to avoid item-artist pairs to be overwritten unintentionally
100-
101-
BlenderArtist.register(Box, BoxArtist)
102-
BlenderArtist.register(Capsule, CapsuleArtist)
103-
BlenderArtist.register(Cone, ConeArtist)
104-
BlenderArtist.register(Cylinder, CylinderArtist)
105-
BlenderArtist.register(Frame, FrameArtist)
106-
BlenderArtist.register(Mesh, MeshArtist)
107-
BlenderArtist.register(Network, NetworkArtist)
108-
BlenderArtist.register(Polyhedron, PolyhedronArtist)
109-
BlenderArtist.register(RobotModel, RobotModelArtist)
110-
BlenderArtist.register(Sphere, SphereArtist)
111-
BlenderArtist.register(Torus, TorusArtist)
115+
global artists_registered
116+
117+
if not artists_registered:
118+
BlenderArtist.register(Box, BoxArtist)
119+
BlenderArtist.register(Capsule, CapsuleArtist)
120+
BlenderArtist.register(Cone, ConeArtist)
121+
BlenderArtist.register(Cylinder, CylinderArtist)
122+
BlenderArtist.register(Frame, FrameArtist)
123+
BlenderArtist.register(Mesh, MeshArtist)
124+
BlenderArtist.register(Network, NetworkArtist)
125+
BlenderArtist.register(Polyhedron, PolyhedronArtist)
126+
BlenderArtist.register(RobotModel, RobotModelArtist)
127+
BlenderArtist.register(Sphere, SphereArtist)
128+
BlenderArtist.register(Torus, TorusArtist)
129+
artists_registered = True
112130

113131
data = args[0]
114132

0 commit comments

Comments
 (0)