Ë
    »dæj  ã                   óÐ   — d Z ddlZddlmZmZmZ ddlmZ ddlm	Z
 ddlmZ ddlmZ ddlmZ dd	lmZ ej&                   G d
„ d«      «       Zej&                   G d„ d«      «       Zy)zDetections data class.é    N)ÚAnyÚListÚOptional)Úbounding_box)Úcategory)Ú
category_c)Údetections_c)Úkeypoint)Údoc_controlsc                   óÞ   — e Zd ZU dZej
                  ed<   eej                     ed<   dZ
eeej                        ed<   dedefd„Zeej&                  d	ej*                  dd fd
„«       «       Zy)Ú	DetectionzÛRepresents one detected object in the object detector's results.

  Attributes:
    bounding_box: A BoundingBox object.
    categories: A list of Category objects.
    keypoints: A list of NormalizedKeypoint objects.
  r   Ú
categoriesNÚ	keypointsÚotherÚreturnc                 óÂ   — t        |t        «      sy| j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S ©z£Checks if this object is equal to the given object.

    Args:
      other: The object to be compared with.

    Returns:
      True if the objects are equal.
    F)Ú
isinstancer   r   r   r   ©Úselfr   s     úz/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/mediapipe/tasks/python/components/containers/detections.pyÚ__eq__zDetection.__eq__)   sV   € ô �eœYÔ'Øà×Ñ˜U×/Ñ/Ñ/ò 	.Ø�O‰O˜u×/Ñ/Ñ/ò	.à�N‰N˜eŸo™oÑ-ðó    Úc_objc                 óÎ  — t        j                  |j                  |j                  ¬«      }t	        j
                  |«      }t        j                  j                  |j                  «      }|j                  r\|j                  dkD  rMt        |j                  «      D �cg c].  }t        j                  j                  |j                  |   «      ‘Œ0 }}nd}t        |||¬«      S c c}w )z@Creates a `Detection` object from the given `DetectionC` object.)r   Úcategories_countr   N)r   r   r   )Úcategory_c_libÚCategoriesCr   r   Úcategory_libÚ%create_list_of_categories_from_ctypesÚbounding_box_libÚBoundingBoxÚfrom_ctypesr   r   Úkeypoints_countÚrangeÚkeypoint_libÚNormalizedKeypointr   )Úclsr   Úc_categoriesÚpy_categoriesÚpy_bounding_boxÚiÚpy_keypointss          r   r#   zDetection.from_ctypes:   s×   € ô "×-Ñ-Ø×#Ñ#°e×6LÑ6Lô€Lô !×FÑFØó€Mô '×2Ñ2×>Ñ>Ø×Ñó€Oð ‡‚˜5×0Ñ0°1Ò4ô ˜×.Ñ.Ó/öàô ×
)Ñ
)×
5Ñ
5°e·o±oÀaÑ6HÕ
Ið€lñ ð
 €läØ$Ø Øôð ùòs   Â3C")Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r"   Ú__annotations__r   r   ÚCategoryr   r   r&   r'   r   Úboolr   Úclassmethodr   Údo_not_generate_docsÚdetections_c_libÚ
DetectionCr#   © r   r   r   r      sŠ   … ñð !×,Ñ,Ó,Ø�<×(Ñ(Ñ)Ó)Ø?C€)ˆX�d˜<×:Ñ:Ñ;Ñ<ÓCð˜#ð  $ó ð" Ø×$Ñ$ðÐ.×9Ñ9ð ¸kò ó %ó ñr   r   c                   ó~   — e Zd ZU dZee   ed<   dedefd„Z	e
ej                  dej                  dd fd„«       «       Zy)	ÚDetectionResultziRepresents the list of detected objects.

  Attributes:
    detections: A list of `Detection` objects.
  Ú
detectionsr   r   c                 óV   — t        |t        «      sy| j                  |j                  k(  S r   )r   r;   r<   r   s     r   r   zDetectionResult.__eq__b   s&   € ô �eœ_Ô-ØØ�?‰?˜e×.Ñ.Ñ.Ð.r   r   c           	      ó¦   — t        t        |j                  «      D �cg c]$  }t        j	                  |j
                  |   «      ‘Œ& c}¬«      S c c}w )zDCreates a `DetectionResult` object from a `DetectionResultC` object.)r<   )r;   r%   Údetections_countr   r#   r<   )r(   r   r,   s      r   r#   zDetectionResult.from_ctypeso   sO   € ô ô ˜5×1Ñ1Ó2ö
àô ×!Ñ! %×"2Ñ"2°1Ñ"5Õ6ò
ôð ùò
s   �)AN)r.   r/   r0   r1   r   r   r2   r   r4   r   r5   r   r6   r7   ÚDetectionResultCr#   r9   r   r   r;   r;   X   s^   … ñð �9‰oÓð/˜#ð / $ó /ð Ø×$Ñ$ð	Ø"×3Ñ3ð	àò	ó %ó ñ	r   r;   )r1   ÚdataclassesÚtypingr   r   r   Ú,mediapipe.tasks.python.components.containersr   r!   r   r   r   r   r	   r7   r
   r&   Ú1mediapipe.tasks.python.core.optional_dependenciesr   Ú	dataclassr   r;   r9   r   r   ú<module>rF      sd   ðñ ã ß &Ñ &å YÝ QÝ UÝ YÝ QÝ Jð ×Ñ÷9ð 9ó ð9ðx ×Ñ÷!ð !ó ñ!r   