From 322cefdff5aa00328f506de60d0066f35d861eeb Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Thu, 15 Aug 2024 22:58:15 +0100 Subject: [PATCH] Fix 3D scatter overlay on volume viewer --- .../volume/jupyter/tests/test_viewer.py | 12 +++++++++++- glue_vispy_viewers/volume/jupyter/volume_viewer.py | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/glue_vispy_viewers/volume/jupyter/tests/test_viewer.py b/glue_vispy_viewers/volume/jupyter/tests/test_viewer.py index f173ec2..f0e34c3 100644 --- a/glue_vispy_viewers/volume/jupyter/tests/test_viewer.py +++ b/glue_vispy_viewers/volume/jupyter/tests/test_viewer.py @@ -4,8 +4,18 @@ from ..volume_viewer import JupyterVispyVolumeViewer -def test_basic_jupyter_volume(): +def test_jupyter_volume_basic(): app = jglue() data = Data(x=np.arange(24).reshape((2, 3, 4)), label="cube data") app.add_data(data) app.new_data_viewer(JupyterVispyVolumeViewer, data=data) + + +def test_jupyter_volume_scatter_overlay(): + app = jglue() + data1 = Data(x=np.arange(24).reshape((2, 3, 4)), label="cube data") + data2 = Data(x=[1, 2, 3], y=[1, 2, 3], z=[2, 3, 4], label="tabular data") + app.add_data(data1) + app.add_data(data2) + viewer = app.new_data_viewer(JupyterVispyVolumeViewer, data=data1) + viewer.add_data(data2) diff --git a/glue_vispy_viewers/volume/jupyter/volume_viewer.py b/glue_vispy_viewers/volume/jupyter/volume_viewer.py index 1285edc..5e865df 100644 --- a/glue_vispy_viewers/volume/jupyter/volume_viewer.py +++ b/glue_vispy_viewers/volume/jupyter/volume_viewer.py @@ -5,6 +5,9 @@ from .viewer_state_widget import Volume3DViewerStateWidget from .layer_state_widget import Volume3DLayerStateWidget from ...common.jupyter.toolbar import VispyJupyterToolbar +from ...scatter.jupyter.layer_state_widget import Scatter3DLayerStateWidget +from ..layer_artist import VolumeLayerArtist +from ...scatter.layer_artist import ScatterLayerArtist __all__ = ['JupyterVispyVolumeViewer'] @@ -13,6 +16,8 @@ class JupyterVispyVolumeViewer(VispyVolumeViewerMixin, IPyWidgetView): _options_cls = Volume3DViewerStateWidget _layer_style_widget_cls = Volume3DLayerStateWidget + _layer_style_widget_cls = {VolumeLayerArtist: Volume3DLayerStateWidget, + ScatterLayerArtist: Scatter3DLayerStateWidget} _toolbar_cls = VispyJupyterToolbar def __init__(self, *args, **kwargs):