from google.protobuf.internal import containers as _containers from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor class Box(_message.Message): __slots__ = ["left", "top", "width", "height"] LEFT_FIELD_NUMBER: _ClassVar[int] TOP_FIELD_NUMBER: _ClassVar[int] WIDTH_FIELD_NUMBER: _ClassVar[int] HEIGHT_FIELD_NUMBER: _ClassVar[int] left: float top: float width: float height: float def __init__(self, left: _Optional[float] = ..., top: _Optional[float] = ..., width: _Optional[float] = ..., height: _Optional[float] = ...) -> None: ... class Point(_message.Message): __slots__ = ["x", "y"] X_FIELD_NUMBER: _ClassVar[int] Y_FIELD_NUMBER: _ClassVar[int] x: float y: float def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ...) -> None: ... class BallDetection(_message.Message): __slots__ = ["plane_position", "annotation", "interpolated"] PLANE_POSITION_FIELD_NUMBER: _ClassVar[int] ANNOTATION_FIELD_NUMBER: _ClassVar[int] INTERPOLATED_FIELD_NUMBER: _ClassVar[int] plane_position: Point annotation: Box interpolated: bool def __init__(self, plane_position: _Optional[_Union[Point, _Mapping]] = ..., annotation: _Optional[_Union[Box, _Mapping]] = ..., interpolated: bool = ...) -> None: ... class RLEBallDetection(_message.Message): __slots__ = ["detection", "count"] DETECTION_FIELD_NUMBER: _ClassVar[int] COUNT_FIELD_NUMBER: _ClassVar[int] detection: BallDetection count: int def __init__(self, detection: _Optional[_Union[BallDetection, _Mapping]] = ..., count: _Optional[int] = ...) -> None: ... class RLEDetectionHistory(_message.Message): __slots__ = ["detections"] DETECTIONS_FIELD_NUMBER: _ClassVar[int] detections: _containers.RepeatedCompositeFieldContainer[RLEBallDetection] def __init__(self, detections: _Optional[_Iterable[_Union[RLEBallDetection, _Mapping]]] = ...) -> None: ... class DetectionHistory(_message.Message): __slots__ = ["detections"] DETECTIONS_FIELD_NUMBER: _ClassVar[int] detections: _containers.RepeatedCompositeFieldContainer[BallDetection] def __init__(self, detections: _Optional[_Iterable[_Union[BallDetection, _Mapping]]] = ...) -> None: ... class CollisionInfo(_message.Message): __slots__ = ["source", "ball_identifiers", "wall_identifier", "frame_index", "static"] class BallIdentifiersEntry(_message.Message): __slots__ = ["key", "value"] KEY_FIELD_NUMBER: _ClassVar[int] VALUE_FIELD_NUMBER: _ClassVar[int] key: int value: Point def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Point, _Mapping]] = ...) -> None: ... SOURCE_FIELD_NUMBER: _ClassVar[int] BALL_IDENTIFIERS_FIELD_NUMBER: _ClassVar[int] WALL_IDENTIFIER_FIELD_NUMBER: _ClassVar[int] FRAME_INDEX_FIELD_NUMBER: _ClassVar[int] STATIC_FIELD_NUMBER: _ClassVar[int] source: int ball_identifiers: _containers.MessageMap[int, Point] wall_identifier: int frame_index: int static: bool def __init__(self, source: _Optional[int] = ..., ball_identifiers: _Optional[_Mapping[int, Point]] = ..., wall_identifier: _Optional[int] = ..., frame_index: _Optional[int] = ..., static: bool = ...) -> None: ... class Path(_message.Message): __slots__ = ["start_frame", "end_frame", "detections", "rle_detections", "not_present", "is_static", "start_info", "end_info"] START_FRAME_FIELD_NUMBER: _ClassVar[int] END_FRAME_FIELD_NUMBER: _ClassVar[int] DETECTIONS_FIELD_NUMBER: _ClassVar[int] RLE_DETECTIONS_FIELD_NUMBER: _ClassVar[int] NOT_PRESENT_FIELD_NUMBER: _ClassVar[int] IS_STATIC_FIELD_NUMBER: _ClassVar[int] START_INFO_FIELD_NUMBER: _ClassVar[int] END_INFO_FIELD_NUMBER: _ClassVar[int] start_frame: int end_frame: int detections: DetectionHistory rle_detections: RLEDetectionHistory not_present: bool is_static: bool start_info: CollisionInfo end_info: CollisionInfo def __init__(self, start_frame: _Optional[int] = ..., end_frame: _Optional[int] = ..., detections: _Optional[_Union[DetectionHistory, _Mapping]] = ..., rle_detections: _Optional[_Union[RLEDetectionHistory, _Mapping]] = ..., not_present: bool = ..., is_static: bool = ..., start_info: _Optional[_Union[CollisionInfo, _Mapping]] = ..., end_info: _Optional[_Union[CollisionInfo, _Mapping]] = ...) -> None: ... class IdentifierHistory(_message.Message): __slots__ = ["ball_identifier", "paths"] BALL_IDENTIFIER_FIELD_NUMBER: _ClassVar[int] PATHS_FIELD_NUMBER: _ClassVar[int] ball_identifier: int paths: _containers.RepeatedCompositeFieldContainer[Path] def __init__(self, ball_identifier: _Optional[int] = ..., paths: _Optional[_Iterable[_Union[Path, _Mapping]]] = ...) -> None: ... class KeyBallIdentifiers(_message.Message): __slots__ = ["cue_ball", "object_ball", "target_ball", "contact_sequence"] CUE_BALL_FIELD_NUMBER: _ClassVar[int] OBJECT_BALL_FIELD_NUMBER: _ClassVar[int] TARGET_BALL_FIELD_NUMBER: _ClassVar[int] CONTACT_SEQUENCE_FIELD_NUMBER: _ClassVar[int] cue_ball: int object_ball: int target_ball: int contact_sequence: _containers.RepeatedScalarFieldContainer[int] def __init__(self, cue_ball: _Optional[int] = ..., object_ball: _Optional[int] = ..., target_ball: _Optional[int] = ..., contact_sequence: _Optional[_Iterable[int]] = ...) -> None: ... class Shot(_message.Message): __slots__ = ["identifier_histories", "key_balls", "start_index", "end_index"] IDENTIFIER_HISTORIES_FIELD_NUMBER: _ClassVar[int] KEY_BALLS_FIELD_NUMBER: _ClassVar[int] START_INDEX_FIELD_NUMBER: _ClassVar[int] END_INDEX_FIELD_NUMBER: _ClassVar[int] identifier_histories: _containers.RepeatedCompositeFieldContainer[IdentifierHistory] key_balls: KeyBallIdentifiers start_index: int end_index: int def __init__(self, identifier_histories: _Optional[_Iterable[_Union[IdentifierHistory, _Mapping]]] = ..., key_balls: _Optional[_Union[KeyBallIdentifiers, _Mapping]] = ..., start_index: _Optional[int] = ..., end_index: _Optional[int] = ...) -> None: ...