Skip to content

Commit 8edaae4

Browse files
committed
custom scene
1 parent 9e08e67 commit 8edaae4

File tree

5 files changed

+28
-3
lines changed

5 files changed

+28
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
* Added custom scene `compas_notebook.scene.Scene`.
13+
1214
### Changed
1315

1416
### Removed
1517

18+
* Removed `scene=None` parameter from viewer constructor.
19+
1620

1721
## [0.6.1] 2024-05-12
1822

src/compas_notebook/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import os
44

5+
from .viewer import Viewer
56

67
__author__ = ["tom van mele"]
78
__copyright__ = "ETH Zurich - Block Research Group"
@@ -18,7 +19,7 @@
1819
TEMP = os.path.abspath(os.path.join(HOME, "temp"))
1920

2021

21-
__all__ = ["HOME", "DATA", "DOCS", "TEMP"]
22+
__all__ = ["HOME", "DATA", "DOCS", "TEMP", "Viewer"]
2223

2324
__all_plugins__ = [
2425
"compas_notebook.scene",

src/compas_notebook/scene/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
from compas.datastructures import Graph
2525
from compas.datastructures import Mesh
2626

27+
from .scene import NotebookScene
28+
2729
from .sceneobject import ThreeSceneObject
2830

2931
from .boxobject import ThreeBoxObject
@@ -85,6 +87,7 @@ def register_scene_objects():
8587

8688

8789
__all__ = [
90+
"NotebookScene",
8891
"ThreeBoxObject",
8992
"ThreeCapsuleObject",
9093
"ThreeConeObject",

src/compas_notebook/scene/scene.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from compas.scene import Scene
2+
3+
4+
class NotebookScene(Scene):
5+
def __init__(self, name: str = "NotebookScene", context: str = "Notebook"):
6+
super().__init__(name=name, context=context)

src/compas_notebook/viewer.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from .config import Config
88
from .controller import Controller
9+
from .scene import NotebookScene
910

1011

1112
class Viewer:
@@ -39,11 +40,10 @@ class Viewer:
3940
def __init__(
4041
self,
4142
config: Config = None,
42-
scene: Scene = None,
4343
controller: Controller = None,
4444
):
45+
self._scene = None
4546
self.config = config or Config()
46-
self.scene = scene or Scene(context="Notebook")
4747
self.controller = controller or Controller(viewer=self)
4848

4949
# move this to a UI class
@@ -56,6 +56,17 @@ def __init__(
5656
# System methods
5757
# =============================================================================
5858

59+
@property
60+
def scene(self):
61+
if self._scene is None:
62+
self._scene = NotebookScene()
63+
return self._scene
64+
65+
@scene.setter
66+
def scene(self, scene: Scene) -> None:
67+
scene = scene or NotebookScene()
68+
self._scene: NotebookScene = NotebookScene.__from_data__(scene.__data__)
69+
5970
def show(self) -> None:
6071
"""Display the viewer in the notebook."""
6172
self.init_webgl()

0 commit comments

Comments
 (0)