pooltool.interact

An endpoint for classes that enable interaction

Overview

Classes

Game

This class runs the pooltool application

Function

show(*args, **kwargs)

Opens the interactive interface for one or more shots.

Classes

class pooltool.interact.Game(config=ShowBaseConfig.default())[source]

This class runs the pooltool application

Bases: Interface

Methods:

attach_system(system: pooltool.system.datatypes.System) None[source]
attach_ruleset(ruleset: pooltool.ruleset.datatypes.Ruleset) None[source]
start()[source]

Functions

pooltool.interact.show(*args, **kwargs)[source]

Opens the interactive interface for one or more shots.

Important

For instructions on how to use the interactive interface, see The Interface.

Parameters:
  • shot_or_shots --

    The shot or collection of shots to visualize. This can be a single pooltool.system.System object or a 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 pt.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 pt.show() and not when playing the game through 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)