diff --git a/pan3d/dataset_viewer.py b/pan3d/dataset_viewer.py index 4e2729fb..ae1643ab 100644 --- a/pan3d/dataset_viewer.py +++ b/pan3d/dataset_viewer.py @@ -311,6 +311,7 @@ def set_render_options( transparency_function: str = None, scalar_warp: bool = False, cartographic: bool = False, + render: bool = True, ) -> None: """Set available options for rendering data. @@ -320,6 +321,7 @@ def set_render_options( transparency_function: One of PyVista's opacity transfer functions (https://docs.pyvista.org/version/stable/examples/02-plot/opacity.html#transfer-functions) scalar_warp: If true, warp the mesh proportional to its scalars. cartographic: If true, wrap the mesh around an earth sphere. + render: If true, update current render with new values (default=True) """ if self.state.render_colormap != colormap: self.state.render_colormap = colormap @@ -332,7 +334,11 @@ def set_render_options( if self.state.render_cartographic != cartographic: self.state.render_cartographic = cartographic - if self.builder.mesh is not None and self.builder.data_array is not None: + if ( + render + and self.builder.mesh is not None + and self.builder.data_array is not None + ): self.apply_and_render() def plot_mesh(self) -> None: diff --git a/tests/test_viewer.py b/tests/test_viewer.py index 0af6f72d..303b5a71 100644 --- a/tests/test_viewer.py +++ b/tests/test_viewer.py @@ -13,11 +13,7 @@ def push_builder_state(builder): def push_viewer_state(viewer): # For state updates with callbacks, # Ensure the callbacks occur in the correct order - viewer.state.update( - dict( - dataset_info={"source": "xarray", "id": "eraint_uvz"}, - ) - ) + viewer.state.update(dict(dataset_info={"source": "xarray", "id": "eraint_uvz"})) viewer.state.flush() viewer.state.update( dict( @@ -95,6 +91,9 @@ def test_render_options_state(): transparency_function="linear_r", scalar_warp=True, cartographic=False, # not compatible with this 4D data + # geovista GeoPlotter includes a check for GPU availability, + # which fails on GH Actions. Disable render in this function. + render=False, ) assert viewer.state.render_x_scale == 2 @@ -104,7 +103,7 @@ def test_render_options_state(): assert viewer.state.render_transparency assert viewer.state.render_transparency_function == "linear_r" assert viewer.state.render_scalar_warp - assert viewer.state.render_cartographic + assert not viewer.state.render_cartographic def test_viewer_export():