|
21 | 21 | # SOFTWARE.
|
22 | 22 | """Provides a wrapper to aid in plotting."""
|
23 | 23 | from abc import abstractmethod
|
| 24 | +import importlib.util |
| 25 | +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union |
24 | 26 |
|
25 |
| -from beartype.typing import Any, Dict, List, Optional, Union |
26 |
| -import numpy as np |
27 | 27 | import pyvista as pv
|
28 | 28 | from vtkmodules.vtkCommonCore import vtkCommand
|
29 | 29 | from vtkmodules.vtkInteractionWidgets import vtkHoverWidget
|
|
32 | 32 | import ansys.tools.visualization_interface
|
33 | 33 | from ansys.tools.visualization_interface.backends._base import BaseBackend
|
34 | 34 | from ansys.tools.visualization_interface.backends.pyvista.pyvista_interface import PyVistaInterface
|
35 |
| -from ansys.tools.visualization_interface.backends.pyvista.trame_local import ( |
36 |
| - _HAS_TRAME, |
37 |
| - TrameVisualizer, |
38 |
| -) |
39 | 35 | from ansys.tools.visualization_interface.backends.pyvista.widgets.displace_arrows import (
|
40 | 36 | CameraPanDirection,
|
41 | 37 | DisplacementArrow,
|
|
57 | 53 | from ansys.tools.visualization_interface.utils.color import Color
|
58 | 54 | from ansys.tools.visualization_interface.utils.logger import logger
|
59 | 55 |
|
| 56 | +_HAS_TRAME = importlib.util.find_spec("pyvista.trame") and importlib.util.find_spec("trame.app") |
| 57 | + |
| 58 | +if TYPE_CHECKING: |
| 59 | + import numpy as np |
| 60 | + |
60 | 61 |
|
61 | 62 | class PyVistaBackendInterface(BaseBackend):
|
62 | 63 | """Provides the interface for the Visualization Interface Tool plotter.
|
@@ -193,7 +194,7 @@ def add_widget(self, widget: Union[PlotterWidget, List[PlotterWidget]]):
|
193 | 194 | self._widgets.append(widget)
|
194 | 195 | widget.update()
|
195 | 196 |
|
196 |
| - def select_object(self, custom_object: Union[MeshObjectPlot, EdgePlot], pt: np.ndarray) -> None: |
| 197 | + def select_object(self, custom_object: Union[MeshObjectPlot, EdgePlot], pt: "np.ndarray") -> None: |
197 | 198 | """Select a custom object in the plotter.
|
198 | 199 |
|
199 | 200 | This method highlights the edges of a body and adds a label. It also adds
|
@@ -463,6 +464,9 @@ def show_plotter(self, screenshot: Optional[str] = None) -> None:
|
463 | 464 |
|
464 | 465 | """
|
465 | 466 | if self._use_trame and _HAS_TRAME:
|
| 467 | + from ansys.tools.visualization_interface.backends.pyvista.trame_local import ( |
| 468 | + TrameVisualizer, |
| 469 | + ) |
466 | 470 | visualizer = TrameVisualizer()
|
467 | 471 | visualizer.set_scene(self._pl)
|
468 | 472 | visualizer.show()
|
|
0 commit comments