pooltool.events.factory ======================= .. py:module:: pooltool.events.factory Abstracted functions for easy event creation -------------------------------------------- This submodule provides a collection of factory functions for creating Event objects. Each function is designed to encapsulate the creation of specific types of events, such as collisions between balls, collisions between balls and cushions, and various transitions in the ball's state (e.g., from rolling to stationary, spinning to rolling). Overview -------- .. list-table:: Function :header-rows: 0 :widths: auto :class: summarytable * - :py:obj:`null_event `\ (time, set_initial) - Create a null event. * - :py:obj:`ball_ball_collision `\ (ball1, ball2, time, set_initial) - Create a ball-ball collision. * - :py:obj:`ball_linear_cushion_collision `\ (ball, cushion, time, set_initial) - Create a ball-linear-cushion collision. * - :py:obj:`ball_circular_cushion_collision `\ (ball, cushion, time, set_initial) - Create a ball-circular-cushion collision. * - :py:obj:`ball_pocket_collision `\ (ball, pocket, time, set_initial) - Create a ball-pocket collision. * - :py:obj:`stick_ball_collision `\ (stick, ball, time, set_initial) - Create a cue stick-ball collision. * - :py:obj:`spinning_stationary_transition `\ (ball, time, set_initial) - Create a spinning-stationary transition. * - :py:obj:`rolling_stationary_transition `\ (ball, time, set_initial) - Create a rolling-stationary transition. * - :py:obj:`rolling_spinning_transition `\ (ball, time, set_initial) - Create a rolling-spinning transition. * - :py:obj:`sliding_rolling_transition `\ (ball, time, set_initial) - Create a sliding-rolling transition. Functions --------- .. py:function:: null_event(time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a null event. .. py:function:: ball_ball_collision(ball1: pooltool.objects.ball.datatypes.Ball, ball2: pooltool.objects.ball.datatypes.Ball, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a ball-ball collision. .. py:function:: ball_linear_cushion_collision(ball: pooltool.objects.ball.datatypes.Ball, cushion: pooltool.objects.table.components.LinearCushionSegment, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a ball-linear-cushion collision. .. py:function:: ball_circular_cushion_collision(ball: pooltool.objects.ball.datatypes.Ball, cushion: pooltool.objects.table.components.CircularCushionSegment, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a ball-circular-cushion collision. .. py:function:: ball_pocket_collision(ball: pooltool.objects.ball.datatypes.Ball, pocket: pooltool.objects.table.components.Pocket, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a ball-pocket collision. .. py:function:: stick_ball_collision(stick: pooltool.objects.cue.datatypes.Cue, ball: pooltool.objects.ball.datatypes.Ball, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a cue stick-ball collision. .. py:function:: spinning_stationary_transition(ball: pooltool.objects.ball.datatypes.Ball, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a spinning-stationary transition. .. py:function:: rolling_stationary_transition(ball: pooltool.objects.ball.datatypes.Ball, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a rolling-stationary transition. .. py:function:: rolling_spinning_transition(ball: pooltool.objects.ball.datatypes.Ball, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a rolling-spinning transition. .. py:function:: sliding_rolling_transition(ball: pooltool.objects.ball.datatypes.Ball, time: float, set_initial: bool = False) -> pooltool.events.datatypes.Event Create a sliding-rolling transition.