"""An endpoint for classes that enable interaction."""frompooltool.ani.animateimportGame,ShotViewer_shot_viewer:ShotViewer|None=None
[docs]defshow(*args,**kwargs):"""Opens the interactive interface for one or more shots. Important: For instructions on how to use the interactive interface, see :doc:`The Interface </getting_started/interface>`. Args: shot_or_shots: The shot or collection of shots to visualize. This can be a single :class:`pooltool.system.System` object or a :class:`pooltool.system.MultiSystem` object containing multiple systems. Note: If a multisystem is passed, the systems can be scrolled through by pressing *n* (next) and *p* (previous). When using :func:`show`, press *Enter* to toggle parallel visualization mode where all systems play simultaneously with reduced opacity except the active one. In parallel mode, use *n* and *p* to change which system has full opacity. Note that parallel visualization is only available in :func:`show` and not when playing the game through the CLI ``run-pooltool``. title: The title to display in the visualization. Defaults to an empty string. camera_state: The initial camera state that the visualization is rendered with. Example: This example visualizes a single shot. >>> import pooltool as pt >>> system = pt.System.example() Make sure the shot is simulated, otherwise it will make for a boring visualization: >>> pt.simulate(system, inplace=True) Now visualize the shot: >>> pt.show(system) (Press *escape* to exit the interface and continue script execution) """global_shot_viewerif_shot_viewerisNone:_shot_viewer=ShotViewer()_shot_viewer.show(*args,**kwargs)