From a5395e4298ddd0d9fef39347a4557b95e5f57959 Mon Sep 17 00:00:00 2001 From: Zac Zhang Date: Fri, 22 Dec 2023 14:38:53 +0100 Subject: [PATCH 1/4] update ready for the review --- src/compas/scene/context.py | 22 +++++++++------------- src/compas/scene/scene.py | 7 +++++-- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/compas/scene/context.py b/src/compas/scene/context.py index 564f588b476d..0a2265ffc5a7 100644 --- a/src/compas/scene/context.py +++ b/src/compas/scene/context.py @@ -1,10 +1,12 @@ -from compas.plugins import pluggable +import inspect +from collections import defaultdict + +import compas from compas.plugins import PluginValidator +from compas.plugins import pluggable + from .exceptions import NoSceneObjectContextError from .exceptions import SceneObjectNotRegisteredError -import inspect -import compas -from collections import defaultdict ITEM_SCENEOBJECT = defaultdict(dict) @@ -62,15 +64,9 @@ def is_viewer_open(): bool """ - # TODO: implement [without introducing compas_view2 as a dependency..?] - # make the viewer app a singleton - # check for the exitence of an instance of the singleton - # if the instance exists, return True - # in this case, the viewer is the current context - # to do this without introducing compas_view2 as a dependency, - # creating the singleton instance should modify a class attribute of the SceneObject - # (or potentially a module level attribute of compas itself) - return False + from compas.scene import Scene + + return Scene.viewerinstance is not None def _detect_current_context(): diff --git a/src/compas/scene/scene.py b/src/compas/scene/scene.py index b4001a0423dd..b66f2a01c2f7 100644 --- a/src/compas/scene/scene.py +++ b/src/compas/scene/scene.py @@ -1,12 +1,15 @@ from compas.data import Data from compas.datastructures import Tree from compas.datastructures import TreeNode -from .sceneobject import SceneObject -from .context import redraw + from .context import clear +from .context import redraw +from .sceneobject import SceneObject class Scene(Data): + viewerinstance = None + def __init__(self, name=None, context=None): super(Scene, self).__init__(name) self._tree = Tree("Scene") From 09c52d86910f821d0a844b6cada62155e095ae67 Mon Sep 17 00:00:00 2001 From: Zac Zhang Date: Fri, 22 Dec 2023 14:41:23 +0100 Subject: [PATCH 2/4] changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b3e78f84fa6..27170de75c51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Added - +* Added `viewerinstance ` in `compas.scene.Scene` to support viewers context detection. * Added `compas_rhino8` as starting point for Rhino8 support. * Added tutorial for `compas.datastructures.Tree`. From cc5ba1e6c72851456403cc40b3c910d807e7e554 Mon Sep 17 00:00:00 2001 From: Zac Zhang Date: Wed, 3 Jan 2024 16:03:33 +0100 Subject: [PATCH 3/4] lint --- src/compas/scene/scene.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compas/scene/scene.py b/src/compas/scene/scene.py index c407b639dbb6..ec351213a9ab 100644 --- a/src/compas/scene/scene.py +++ b/src/compas/scene/scene.py @@ -178,7 +178,9 @@ class Scene(Data): >>> scene.redraw() """ + viewerinstance = None + def __init__(self, name=None, context=None): super(Scene, self).__init__(name) self._tree = SceneTree("Scene") From 1de9b1313213d30817ce079e270754dc18c2bb7c Mon Sep 17 00:00:00 2001 From: Zac Zhang Date: Wed, 3 Jan 2024 16:30:43 +0100 Subject: [PATCH 4/4] superfluous spaces --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de2039d0a4d7..020e1f216d78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Added -* Added `viewerinstance ` in `compas.scene.Scene` to support viewers context detection. +* Added `viewerinstance` in `compas.scene.Scene` to support viewers context detection. * Added `compas_rhino8` as starting point for Rhino8 support. * Added `compas.scene.SceneObjectNode`. * Added `compas.scene.SceneTree`.