Skip to content

Commit ca29b15

Browse files
committed
clean up
1 parent a5c0fd6 commit ca29b15

File tree

5 files changed

+37
-22
lines changed

5 files changed

+37
-22
lines changed

src/compas_viewer/commands.py

-17
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,6 @@ def select_all(viewer: "Viewer"):
236236
if obj.show and not obj.is_locked:
237237
obj.is_selected = True
238238

239-
viewer.ui.sidebar.update()
240-
viewer.renderer.update()
241-
242239

243240
select_all_cmd = Command(title="Select All", callback=select_all)
244241

@@ -247,9 +244,6 @@ def deselect_all(viewer: "Viewer"):
247244
for obj in viewer.scene.objects:
248245
obj.is_selected = False
249246

250-
viewer.ui.sidebar.update()
251-
viewer.renderer.update()
252-
253247

254248
deselect_all_cmd = Command(title="DeSelect All", callback=deselect_all)
255249

@@ -275,8 +269,6 @@ def select_object(viewer: "Viewer", event: QMouseEvent):
275269
if selected_obj:
276270
selected_obj.is_selected = True
277271

278-
viewer.ui.sidebar.update()
279-
280272
viewer.renderer.update()
281273

282274

@@ -295,7 +287,6 @@ def select_multiple(viewer: "Viewer", event: QMouseEvent):
295287
selected_obj = viewer.scene.instance_colors.get(tuple(unique_color[0])) # type: ignore
296288
if selected_obj:
297289
selected_obj.is_selected = True
298-
viewer.ui.sidebar.update()
299290

300291
viewer.renderer.update()
301292

@@ -343,8 +334,6 @@ def select_window(viewer: "Viewer", event: QMouseEvent):
343334
obj.is_selected = True
344335
continue
345336

346-
viewer.ui.sidebar.update()
347-
348337
viewer.renderer.update()
349338

350339

@@ -364,8 +353,6 @@ def deselect_object(viewer: "Viewer", event: QMouseEvent):
364353
if selected_obj:
365354
selected_obj.is_selected = False
366355

367-
viewer.ui.sidebar.update()
368-
369356
viewer.renderer.update()
370357

371358

@@ -394,7 +381,6 @@ def delete_selected():
394381
if obj.is_selected:
395382
viewer.scene.remove(obj)
396383
del obj
397-
viewer.renderer.update()
398384

399385

400386
# =============================================================================
@@ -411,9 +397,6 @@ def clear_scene(viewer: "Viewer"):
411397
viewer.scene.remove(obj)
412398
del obj
413399

414-
viewer.ui.sidebar.update()
415-
viewer.renderer.update()
416-
417400

418401
clear_scene_cmd = Command(title="Clear Scene", callback=clear_scene)
419402

src/compas_viewer/components/sceneform.py

-2
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,6 @@ def on_item_clicked(self, item, column):
114114
if self.callback and node.is_selected:
115115
self.callback(node)
116116

117-
self.viewer.renderer.update()
118-
119117
def on_item_selection_changed(self):
120118
for item in self.selectedItems():
121119
if self.callback:

src/compas_viewer/observer.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@ def __init__(self):
1212
)
1313
)
1414

15-
self._time = None
1615
self.update_timer = QTimer()
1716
self.update_timer.setSingleShot(True)
1817
self.update_timer.timeout.connect(self.update_observers)
19-
self.debounce_interval = 100
18+
self.debounce_interval = 200
2019

2120
def add_observer(self, observer):
2221
if observer not in self._observers:

src/compas_viewer/scene/scene.py

+28
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from compas.datastructures import Datastructure
1010
from compas.geometry import Geometry
1111
from compas.scene import Scene
12+
from compas_viewer.observer import Observer
1213

1314
from .sceneobject import ViewerSceneObject
1415

@@ -68,17 +69,28 @@ class ViewerScene(Scene):
6869
def __init__(self, name: str = "ViewerScene", context: str = "Viewer"):
6970
super().__init__(name=name, context=context)
7071

72+
# Observer
73+
self._observer = None
74+
7175
# Primitive
7276
self.objects: list[ViewerSceneObject]
7377
# Selection
7478
self.instance_colors: dict[tuple[int, int, int], ViewerSceneObject] = {}
7579
self._instance_colors_generator = instance_colors_generator()
7680

7781
@property
82+
<<<<<<< HEAD
7883
def viewer(self):
7984
from compas_viewer import Viewer
8085

8186
return Viewer()
87+
=======
88+
def observer(self):
89+
"""Observer: The observer object for the scene."""
90+
if self._observer is None:
91+
self._observer = Observer()
92+
return self._observer
93+
>>>>>>> 45eaaab56 (clean up)
8294

8395
# TODO: These fixed kwargs could be moved to COMPAS core.
8496
def add(
@@ -183,4 +195,20 @@ def add(
183195
u=u,
184196
**kwargs,
185197
)
198+
<<<<<<< HEAD
199+
=======
200+
self.observer.request_update()
201+
>>>>>>> 45eaaab56 (clean up)
186202
return sceneobject
203+
204+
def remove(self, obj: ViewerSceneObject) -> None:
205+
"""
206+
Remove an object from the scene.
207+
208+
Parameters
209+
----------
210+
obj : :class:`compas_viewer.scene.ViewerSceneObject`
211+
The object to remove.
212+
"""
213+
super().remove(obj)
214+
self.observer.request_update()

src/compas_viewer/scene/sceneobject.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def __init__(
103103
# Basic
104104
super().__init__(**kwargs)
105105

106-
self.observer = Observer()
106+
self._observer = None
107107

108108
self.show = show
109109
self.show_points = show_points if show_points is not None else False
@@ -139,6 +139,13 @@ def __init__(
139139

140140
self._inited = False
141141

142+
@property
143+
def observer(self) -> bool:
144+
"""bool : Whether the scene is requested to be updated."""
145+
if self._observer is None:
146+
self._observer = Observer()
147+
return self._observer
148+
142149
@property
143150
def is_selected(self):
144151
return self._is_selected

0 commit comments

Comments
 (0)